Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format PE GUI 4.0 ; VANS-SOFT.RU
- entry start
- include 'include\win32A.inc'
- section '.data' data readable writeable
- buff rb 100h
- encoded rb 100h
- decode db 'ahrtkslpbz1234567890',0 ;строка декодирования
- generate db '1234567890dynfgxmie0',0 ;строка замены
- section '.VANS' code readable executable ;своя секция, круто
- start:
- invoke GetModuleHandle,0
- invoke DialogBoxParam,eax,37,HWND_DESKTOP,WindowProc,0
- invoke ExitProcess,0
- proc WindowProc hwnd, msg, wparam, lparam ;обработчик событий
- push ebx esi edi
- cmp [msg], WM_COMMAND
- je .wmcommand
- cmp [msg], WM_CLOSE
- je .wmclose
- xor eax,eax
- jmp .finish
- .wmcommand:
- cmp [wparam], BN_CLICKED shl 16 + ID_GEN
- je .wmgen
- jmp .processed
- .wmgen:
- invoke GetDlgItemText,[hwnd],ID_TXT,buff,255
- stdcall GenCode,buff,eax,encoded
- invoke SetDlgItemText,[hwnd],ID_ENC,encoded
- jmp .processed
- .wmclose:
- invoke EndDialog,[hwnd],0
- .processed:
- mov eax,1
- .finish:
- pop edi esi ebx
- ret
- endp
- proc GenCode lpData:DWORD, dSize:DWORD, lpBuff:DWORD
- push eax ecx edi esi
- mov ecx,[dSize] ;количество итераций цикла
- mov esi,[lpData];ключ
- mov edi,[lpBuff];приёмник
- or ecx,ecx ;не пустая строка
- jz .loc_done
- .round_one: ;цикл по введёному коду
- ;берём первый символ и смещаем позицию на 1
- lodsb ;символ будет в регистре al
- mov ebx,ecx ;Сохраняем счётчик в EBX
- mov ecx,20 ;Счётчик внутреннего цикла
- .round_two: ;цикл по строке
- ;в ассемблере нет массивов по этому используем адреса
- ;decode - начальный адрес строки + смещение
- cmp al, byte [decode+ecx-1]
- je .loc_ex ;если символы равны то будет переход
- loop .round_two
- jmp .err ;если не нашло то негодуем
- .loc_ex:
- ;далее берём символ с того же места, но из другого массива
- mov al, byte [generate+ecx-1]
- .err:
- mov ecx,ebx ;восстанавливаем значение счётчика
- stosb ;вернуть взятый байт обратно в строку
- loop .round_one
- .loc_done:
- mov al,0
- stosb
- pop esi edi ecx eax
- ret
- endp
- section '.idata' import data readable writeable
- library kernel32,'KERNEL32.DLL',\
- user32,'USER32.DLL'
- include 'api\kernel32.inc'
- include 'api\user32.inc'
- section '.rsrc' resource data readable
- directory RT_DIALOG,dialogs
- resource dialogs,\
- 37,LANG_ENGLISH+SUBLANG_DEFAULT,keygen
- ID_TXT = 100
- ID_ENC = 101
- ID_GEN = 102
- ID_RESET = 103
- dialog keygen,'LinkReader KeyGen by VANS',0,0,200,75,WS_CAPTION+WS_SYSMENU+DS_CENTER+DS_SYSMODAL
- dialogitem 'EDIT','k6a0a3l0h', ID_TXT,5,23,190,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL
- dialogitem 'EDIT','',ID_ENC,5,37,190,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL+ES_READONLY
- dialogitem 'STATIC','-=VANS-SOFT.RU=-',0, 0, 8, 200, 8 ,WS_VISIBLE+SS_CENTER
- dialogitem 'BUTTON','Gen',ID_GEN,5,55,90,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
- dialogitem 'BUTTON','Reset Activation',ID_RESET,100,55,95,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
- enddialog
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement