Показать сообщение отдельно

  #3  
Старый 04.01.2010, 07:00
tekton
Познающий
Регистрация: 02.06.2008
Сообщений: 59
С нами: 9442961

Репутация: 3
По умолчанию

Вот. Это родной сырец из архива с тутором.

Код:
.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

IDC_NAME    equ     100
IDC_KEY     equ     101

WinMain     PROTO   :HINSTANCE,:HINSTANCE,:LPSTR,:DWORD
;extern      wsprintfA   :proc

.data
szClassName         db      'UglyWindowClass',0
szAppName           db      'TMG Ripper Studio example',0    ;### Заголовок окна
szEdit              db      'EDIT',0

.data?
szName              db      30 dup(?)    ;### Инициализируемые данные. Имя макс 30 символлов
szKey               db      9  dup(?)    ;### Инициализируемые данные. SERIAL 9 символов


;========================= START ================================
.code

start:     ;### Метка

    invoke  GetModuleHandle,0
    invoke  WinMain,eax,NULL,NULL,SW_SHOW
    invoke  ExitProcess,eax
MessageHandler proc hWnd:HWND,Msg:DWORD,wParam:WPARAM,lParam:LPARAM
    cmp     Msg,WM_CLOSE
    jne     NotClose           ;### Выполнить  Метку
    invoke  PostQuitMessage,0
    xor     eax,eax
    ret

;========================= NOT CLOSE ==============================
NotClose:
    cmp     Msg,WM_COMMAND
    jne     Default             ;### Выполнить  Метку
    mov     eax,wParam
    and     eax,0ffffh
    cmp     eax,IDC_NAME
    jne     Default             ;### Выполнить  Метку
    mov     esi,hWnd
    call    GenerateKey         ;### Выполнить  Метку
    xor     eax,eax
    ret

;========================= DEFAULT ==============================

Default:           ;### Метка

    invoke  DefWindowProc,hWnd,Msg,wParam,lParam
    ret
MessageHandler endp
WinMain proc    hInst:HINSTANCE,hPrev:HINSTANCE,szCmdLine:LPSTR,CmdShow:DWORD
    local   wc:WNDCLASSEX
    local   msg:MSG;
    push    hInst
    push    edi
    xor     eax,eax
    lea     edi,wc
    mov     ecx,sizeof WNDCLASSEX
    push    ecx
    rep     stosb    
    pop     wc.cbSize
    mov     wc.style,CS_HREDRAW or CS_VREDRAW or CS_OWNDC
    pop     edi
    mov     wc.lpfnWndProc,offset MessageHandler
    pop     wc.hInstance
    mov     wc.lpszClassName,offset szClassName
    mov     wc.hbrBackground,COLOR_BACKGROUND
    invoke  RegisterClassEx,addr wc
    invoke  CreateWindowEx,WS_EX_STATICEDGE,offset szClassName,offset szAppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,300,100,NULL,NULL,hInst,NULL
    push    CmdShow
    push    eax
    invoke  CreateWindowEx,WS_EX_STATICEDGE,offset szEdit,NULL,WS_CHILD or WS_VISIBLE,10,10,280,20,eax,IDC_NAME,hInst,NULL
    invoke  CreateWindowEx,WS_EX_STATICEDGE,offset szEdit,NULL,WS_CHILD or WS_VISIBLE or ES_READONLY,10,40,280,20,[esp+12],IDC_KEY,hInst,NULL
    call    ShowWindow

;========================= MESSAGE LOOP ==============================

MessageLoop:     ;### Метка

    invoke  GetMessage,addr msg,NULL,0,0
    test    eax,eax
    je      Finish          ;### Прыжок на метку Finish

    invoke  TranslateMessage,addr msg
    invoke  DispatchMessage,addr msg
    jmp     MessageLoop

;=========================FINISH==============================

Finish:             ;### метка 

    mov     eax,msg.wParam
    ret    
WinMain endp

;=========================GENERATE KEY=========================

GenerateKey:  ;### метка 

    invoke  GetDlgItemText,esi,IDC_NAME,offset szName,30
    test    eax,eax
    je      NoName           ;### Выполнить  Метку 
    push    offset szKey     ;### Кладём Ключик в стек
    push    offset szName    ;### Кладём ИМя  в стек
    call    Keygen           ;### Переход на выполнение нашей метки с выдранным кодом
    add     esp,8
    invoke  SetDlgItemText,esi,IDC_KEY,offset szKey

;=========================NO NAME ==============================

NoName:   ;### Метка 

    ret

;++++++++++++++++++++++++++++++++++++++++++++
;+                                          +                                                    
;+   Далее идёт код из TMG Ripper Studio    +
;+                                          +
;++++++++++++++++++++++++++++++++++++++++++++

.DATA

LOC_0048C844    dd        000000000h      ;### Буфер
LOC_0047E38C    db        '%04X%04X',0    ;### Буфер


 ;========================= KEY GEN ============================

.CODE
Keygen:                                ;### Метка

	PUSH               EBP
	MOV                EBP,ESP
	MOV                ECX,DWORD PTR [EBP+008h]
	PUSH               EBX
	PUSH               ESI
	PUSH               EDI
	MOV                DL,BYTE PTR [ECX]
	XOR                EBX,EBX
	XOR                EAX,EAX
	MOV                ESI,ECX
	XOR                EDI,EDI
LOC_00407B5A: ;Ref: 00407B6C
	TEST               DL,DL
	JZ                 LOC_00407B6E
	MOVZX              DX,DL
	IMUL               EDX,EDI
	ADD                EBX,EDX
	MOV                DL,BYTE PTR [ESI+001h]
	INC                EDI
	INC                ESI
	JMP                LOC_00407B5A
LOC_00407B6E: ;Ref: 00407B5C
	MOV                DWORD PTR [LOC_0048C844],000000001h
	MOV                ESI,ECX
	MOV                CL,BYTE PTR [ECX]
LOC_00407B7C: ;Ref: 00407B97
	TEST               CL,CL
	JZ                 LOC_00407B99
	MOVZX              CX,CL
	PUSH               000001021h
	PUSH               ECX
	PUSH               EAX
	CALL               LOC_00407BB9
	MOV                CL,BYTE PTR [ESI+001h]
	ADD                ESP,00Ch
	INC                ESI
	JMP                LOC_00407B7C
LOC_00407B99: ;Ref: 00407B7E
	ADD                EAX,063h
	MOVZX              ECX,BX
	MOVZX              EAX,AX
	PUSH               ECX
	PUSH               EAX
	PUSH               OFFSET LOC_0047E38C
	PUSH               DWORD PTR [EBP+00Ch]
	CALL               wsprintfA ; <<<<<<<<<<<<<<Здесь заменили LOC_00467AB4 на  wsrintfA
	ADD                ESP,010h
	POP                EDI
	POP                ESI
	POP                EBX
	POP                EBP
	RETN               
LOC_00407BB9: ;Ref: 00407B8B
	PUSH               EBP
	MOV                EBP,ESP
	MOV                EAX,DWORD PTR [EBP+008h]
	PUSH               ESI
	XOR                ECX,ECX
	PUSH               008h
	MOV                CH,BYTE PTR [EBP+00Ch]
	POP                EDX
LOC_00407BC8: ;Ref: 00407BDF
	MOV                ESI,EAX
	XOR                ESI,ECX
	TEST               SI,08000h
	JZ                 LOC_00407BDA
	ADD                EAX,EAX
	XOR                EAX,DWORD PTR [EBP+010h]
	JMP                LOC_00407BDC
LOC_00407BDA: ;Ref: 00407BD1
	SHL                EAX,1
LOC_00407BDC: ;Ref: 00407BD8
	SHL                ECX,1
	DEC                EDX
	JNZ                LOC_00407BC8
	POP                ESI
	POP                EBP
	RETN               
end start


После надписи
Код:
;++++++++++++++++++++++++++++++++++++++++++++
;+                                          +                                                    
;+   Далее идёт код из TMG Ripper Studio    +
;+                                          +
;++++++++++++++++++++++++++++++++++++++++++++
мне надо вставить другой код(который генерит пароль), выдраный из другой проги.

Генерацию пароля я нашёл. Пароль обведён рамками на фотке, в прошлом посте.

Как передать пароль в поле Serial кейгена?

Короче типа шаблона хочу сделать.

А так же хочу добавить сюда пару кнопок:
COPY чтоб сгенерированый пароль копировался в буфер (ну чтоб мышькой не выделять, не жать правой кнопкой копировать...)

и кнопочку
ABOUT

Последний раз редактировалось tekton; 04.01.2010 в 11:22..
 
Ответить с цитированием