Привет! Такая проблема у меня. Попался мануал по TMG Ripper Studio 0.03 . В комплекте был исходник TMGRS-EX.ASM Код я выдрал в Ольке плагом. Вопрос: как переправить пароль в поле кейгена ??? вот фотка с найденым паролем И второй: как сделать кнопки COPY чтоб копировать ключь из кейгена в буфер обмена, и ABOUT ???
Вот. Это родной сырец из архива с тутором. Code: [B].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[/B] После надписи Code: ;++++++++++++++++++++++++++++++++++++++++++++ ;+ + ;+ Далее идёт код из TMG Ripper Studio + ;+ + ;++++++++++++++++++++++++++++++++++++++++++++ мне надо вставить другой код(который генерит пароль), выдраный из другой проги. Генерацию пароля я нашёл. Пароль обведён рамками на фотке, в прошлом посте. Как передать пароль в поле Serial кейгена? Короче типа шаблона хочу сделать. А так же хочу добавить сюда пару кнопок: COPY чтоб сгенерированый пароль копировался в буфер (ну чтоб мышькой не выделять, не жать правой кнопкой копировать...) и кнопочку ABOUT
ну вот же invoke SetDlgItemText,esi,IDC_KEY,offset szKey где offset szKey указатель на ключ. копирование например так. invoke SendDlgItemMessage,hWin,IDC_KEY,EM_SETSEL,0,-1 invoke SendDlgItemMessage, hWin, IDC_KEY, WM_COPY, 0,0 с эбаутом какие проблеммы?) вообще посмотри другие темплейты кейгенов, или ревересни какойнить. потому,что надо же ещо музыку картинки и всё такое)
вопрос ? есть такая прога: налогоплательщик 2010.01... распаковать то я распаковал,декомпилировал, но с алгоритмом намудрили не посмотрите ??? http://slil.ru/28505826 в dekod2010 передается типа ключик для сравнения, в декоде из инн+кпп переменные :iuytrewq и lkjhgfdsa получается переменная snsnsnsnsn так вот, если серийник правильный то в конце получатся lcisxod0 равная snsnsnsnsn и процедура возвращает 1 ===== необходимо оттолкнуться от lcisxod0 так как snsnsnsnsn мы сразу получаем и видим, чтобы получить правильный серийник... но тут трабл, куча вызовов процедур, я с математикой не разберусь :-( не посмотрите ??? что то из математики вспомнить не могу ... толи прогрессия толи ряды напоминает.....
Читал я статью грейта по переполению буфера и решил попробовать... Ссылка на статью: http://forum.antichat.ru/showthread.php?p=219774 Статья супер, конечно, но у меня что-то не вышло. Значит так я сделал как написано нашел адрес zzcv: у меня этот адрес существует 2 раза, сделал первый раз - вообще ничего не произошло, просто выводил Get your name и все, сделал с друим адресом, теперь выводит: AAAAAAAAAA0123454*‼! и программа завершается аварийно, не выводя MessageBox'a. Почему так? Его тулзу хз где скачать, юзал это: http://mike.nov.ru/2004/10/09/binary-files-to-c-module/
Это видел еще хуже =\ От грейта все более менее понятно. Допустим: Я нашел программу с переполнением буффера. Достаточно ввести 10 символов и потом начинается затираение. Так вот: как вызвать там просто MessageBox какой-нить?
Выяснить какие именно символы от начала строки перетирают адрес возврата в стеке (скорее всего - у тебя переполнение в стеке), перетереть адресом инструкции типо JMP ESP, и далее за этим адресом расположить такую штуку: [NOP...NOP][SHELLCODE][RET..RET] - это самая классическая схема. PS NOP - это 90, SHELLCODE можно взять из Metasploit, RET - адрес возврата на инструкцию типо JMP ESP, к примеру (это не рабочий адрес!!!) - 7C42B244
А, я нашел переполнение через OllyDbg, так вот каким образом туда впихнуть эти инструкции? Надо их захксить и туда вставить? Или как?
Есть файл, он упакован этим (PEiD выдал): EXECryptor V2.2X-V2.4X -> StrongBit Technology * Sign.By.fly * Взял Unpacker ExeCryptor 2.x.x. beta 1 by RSI, лог анпаковки: Почему анпакованный файл не появ.? Сам пакованный файл: lovepiar.net/files/LoveProject2.9.9.184.exe (софт требует инсталла)