Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) |
eXeL@B —› Основной форум —› Как убрать окно? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 11 сентября 2005 19:32 · Личное сообщение · #1 Приветствую всех! Дело такое, есть прога, в которой перед запуском показывается окно для ввода кода. Код имеется, но хочется убрать это наглое окно. В ольке оказался на OEP, прошёл немного по коду и встретил команду "CALL <имя_exe>.00418F17", после которой и открывается окно для ввода кода. Потом нашёл команду "CALL <имя_exe>.00418А17", после выполнения, которой запускается сама программа (то что нужно). Заменил первую команду второй, но не сработало. Ещё хотел посмотреть, что есть по адресу первой команды (00418F17), но по такому адресу ничего не было. Чуть позже заметил, ниже в окне, написано "<имя_exe>.<ModuleEntryPoint>+0DB", сходил по высчитанному адресу и поставил там BP, но не разу на это место не попал. Подскажите, пожалуйста, как бы вы действовали в данном случае или что я не так делал. |
|
Создано: 11 сентября 2005 19:57 · Личное сообщение · #2 |
|
Создано: 12 сентября 2005 10:13 · Поправил: Error_Log · Личное сообщение · #3 IvanStepkin Посмотри, что возвращает "CALL <имя_exe>.00418F17", после которой и открывается окно для ввода кода" Есс-но после ввода кода; потом нужно нужно в самом начале вписать то, что этот Call возвращает, и команду ret. Более подробно сказать не могу, так как не видел того, о чем ты говоришь. ЗЫ: Разберись, где рисуется окно, потому-что оно может рисоваться в одном из вложенных Call-ов в твой Call. ----- Research is my purpose |
|
Создано: 12 сентября 2005 11:26 · Поправил: Bitfry · Личное сообщение · #4 IvanStepkin пишет: Подскажите, пожалуйста, как бы вы действовали в данном случае … Я бы сначала NOP'ил направо и налево, авось угадаю. или что я не так делал. Ты плохо сформулировал вопрос. Оно и понятно, если б знал, как задать вопрос - сам бы ответил. 1. В таких вопросах всегда приводят кусок кода (по-моему, даже в правилах написано). 2. Читай и разбирайся в Асме (а ты его явно не знаешь... Ну, или русский изучай лучше) IvanStepkin пишет: Заменил первую команду второй, но не сработало. Если просто адрес вызова перебил, значит, ты не знаешь правила вызова функций. Тут есть только один совет – читай! Хотя бы того же Iczelion'a. IvanStepkin пишет: но по такому адресу ничего не было. Совсем ничего? ----- Всем привет, я вернулся |
|
Создано: 12 сентября 2005 13:59 · Личное сообщение · #5 |
|
Создано: 12 сентября 2005 15:12 · Личное сообщение · #6 |
|
Создано: 12 сентября 2005 17:13 · Личное сообщение · #7 |
|
Создано: 13 сентября 2005 21:19 · Поправил: IvanStepkin · Личное сообщение · #8 А вот и код: 0040D23D PUSH EBP <<<<<< Отсюда начинается программа 0040D23E MOV EBP,ESP 0040D240 PUSH -1 0040D242 PUSH MInstall.00429EF8 0040D247 PUSH MInstall.004112DC ; SE handler installation 0040D24C MOV EAX,DWORD PTR FS:[0] 0040D252 PUSH EAX 0040D253 MOV DWORD PTR FS:[0],ESP 0040D25A SUB ESP,58 0040D25D PUSH EBX 0040D25E PUSH ESI 0040D25F PUSH EDI 0040D260 MOV DWORD PTR SS:[EBP-18],ESP 0040D263 CALL DWORD PTR DS:[<&KERNEL32.GetVers>; kernel32.GetVersion 0040D269 XOR EDX,EDX 0040D26B MOV DL,AH 0040D26D MOV DWORD PTR DS:[4351C4],EDX 0040D273 MOV ECX,EAX 0040D275 AND ECX,0FF 0040D27B MOV DWORD PTR DS:[4351C0],ECX 0040D281 SHL ECX,8 0040D284 ADD ECX,EDX 0040D286 MOV DWORD PTR DS:[4351BC],ECX 0040D28C SHR EAX,10 0040D28F MOV DWORD PTR DS:[4351B8],EAX 0040D294 PUSH 1 0040D296 CALL MInstall.0040FDA4 0040D29B POP ECX 0040D29C TEST EAX,EAX 0040D29E JNZ SHORT MInstall.0040D2A8 0040D2A0 PUSH 1C 0040D2A2 CALL MInstall.0040D36A 0040D2A7 POP ECX 0040D2A8 CALL MInstall.0040F70C 0040D2AD TEST EAX,EAX 0040D2AF JNZ SHORT MInstall.0040D2B9 0040D2B1 PUSH 10 0040D2B3 CALL MInstall.0040D36A 0040D2B8 POP ECX 0040D2B9 XOR ESI,ESI 0040D2BB DWORD PTR SS:[EBP-4],ESI 0040D2BE CALL MInstall.00411117 0040D2C3 CALL DWORD PTR DS:[<&KERNEL32.GetComm>; [GetCommandLineA 0040D2C9 MOV DWORD PTR DS:[4368B8],EAX 0040D2CE CALL MInstall.00410FE5 0040D2D3 MOV DWORD PTR DS:[4351A0],EAX 0040D2D8 CALL MInstall.00410D98 0040D2DD CALL MInstall.00410CDF 0040D2E2 CALL MInstall.0040E095 0040D2E7 MOV DWORD PTR SS:[EBP-30],ESI 0040D2EA LEA EAX,DWORD PTR SS:[EBP-5C] 0040D2ED PUSH EAX ; /pStartupinfo 0040D2EE CALL DWORD PTR DS:[<&KERNEL32.GetStar>; \GetStartupInfoA 0040D2F4 CALL MInstall.00410C87 0040D2F9 MOV DWORD PTR SS:[EBP-64],EAX 0040D2FC TEST BYTE PTR SS:[EBP-30],1 0040D300 JE SHORT MInstall.0040D308 0040D302 MOVZX EAX,WORD PTR SS:[EBP-2C] 0040D306 JMP SHORT MInstall.0040D30B 0040D308 PUSH 0A 0040D30A POP EAX 0040D30B PUSH EAX 0040D30C PUSH DWORD PTR SS:[EBP-64] 0040D30F PUSH ESI 0040D310 PUSH ESI ; /pModule 0040D311 CALL DWORD PTR DS:[<&KERNEL32.GetModu>; \GetModuleHandleA 0040D317 PUSH EAX 0040D318 CALL MInstall.00418F17 <<<<< После выполнения этой функции открывается окно 0040D31D MOV DWORD PTR SS:[EBP-60],EAX 0040D320 PUSH EAX 0040D321 CALL MInstall.0040E0C2 0040D326 MOV EAX,DWORD PTR SS:[EBP-14] 0040D329 MOV ECX,DWORD PTR DS:[EAX] 0040D32B MOV ECX,DWORD PTR DS:[ECX] 0040D32D MOV DWORD PTR SS:[EBP-68],ECX 0040D330 PUSH EAX 0040D331 PUSH ECX 0040D332 CALL MInstall.00410B0F 0040D337 POP ECX 0040D338 POP ECX 0040D339 RETN |
|
Создано: 13 сентября 2005 21:47 · Личное сообщение · #9 |
|
Создано: 13 сентября 2005 21:55 · Личное сообщение · #10 |
|
Создано: 13 сентября 2005 23:38 · Поправил: IvanStepkin · Личное сообщение · #11 00418F17 PUSH DWORD PTR SS:[ESP+10] 00418F1B PUSH DWORD PTR SS:[ESP+10] 00418F1F PUSH DWORD PTR SS:[ESP+10] 00418F23 PUSH DWORD PTR SS:[ESP+10] 00418F27 CALL MInstall.004201E3 00418F2C RETN 10 004201E3 PUSH EBX 004201E4 PUSH ESI 004201E5 PUSH EDI 004201E6 OR EBX,FFFFFFFF 004201E9 CALL MInstall.0041B11B 004201EE MOV ESI,EAX 004201F0 CALL MInstall.0042287D 004201F5 PUSH DWORD PTR SS:[ESP+1C] 004201F9 MOV EDI,DWORD PTR DS:[EAX+4] 004201FC PUSH DWORD PTR SS:[ESP+1C] 00420200 PUSH DWORD PTR SS:[ESP+1C] 00420204 PUSH DWORD PTR SS:[ESP+1C] 00420208 CALL MInstall.00422C85 0042020D TEST EAX,EAX 0042020F JE SHORT MInstall.0042024C 00420211 TEST EDI,EDI 00420213 JE SHORT MInstall.00420223 00420215 MOV EAX,DWORD PTR DS:[EDI] 00420217 MOV ECX,EDI 00420219 CALL DWORD PTR DS:[EAX+84] 0042021F TEST EAX,EAX 00420221 JE SHORT MInstall.0042024C 00420223 MOV EAX,DWORD PTR DS:[ESI] 00420225 MOV ECX,ESI 00420227 CALL DWORD PTR DS:[EAX+50] >>>>> Опять переход 0042022A TEST EAX,EAX ................. 00401260 PUSH -1 00401262 PUSH MInstall.004257CD ; SE handler installation 00401267 MOV EAX,DWORD PTR FS:[0] 0040126D PUSH EAX 0040126E MOV DWORD PTR FS:[0],ESP 00401275 SUB ESP,1D4 0040127B PUSH ESI 0040127C MOV ESI,ECX 0040127E PUSH 0 00401280 CALL MInstall.00404DC2 00401285 ADD ESP,4 00401288 MOV ECX,ESI 0040128A CALL MInstall.004223E0 0040128F PUSH 0 00401291 LEA ECX,DWORD PTR SS:[ESP+8] 00401295 CALL MInstall.004014D0 0040129A LEA EAX,DWORD PTR SS:[ESP+4] 0040129E LEA ECX,DWORD PTR SS:[ESP+4] 004012A2 MOV DWORD PTR SS:[ESP+1E0],0 004012AD MOV DWORD PTR DS:[ESI+1C],EAX 004012B0 CALL MInstall.0041C01F >>>> Снова переход 004012B5 LEA ECX,DWORD PTR SS:[ESP+1D0] 004012BC MOV DWORD PTR SS:[ESP+1E0],8 ........................ 0041C01F MOV EAX,MInstall.0042629C >>>> Продолжение вывода окна 0041C024 CALL MInstall.0040D6E4 0041C029 SUB ESP,18 0041C02C PUSH EBX 0041C02D PUSH ESI 0041C02E MOV ESI,ECX 0041C030 PUSH EDI 0041C031 MOV DWORD PTR SS:[EBP-10],ESP 0041C034 MOV DWORD PTR SS:[EBP-1C],ESI 0041C037 MOV EAX,DWORD PTR DS:[ESI+48] 0041C03A MOV EDI,DWORD PTR DS:[ESI+44] 0041C03D MOV DWORD PTR SS:[EBP-18],EAX 0041C040 CALL MInstall.0042287D 0041C045 CMP DWORD PTR DS:[ESI+40],0 0041C049 MOV EBX,DWORD PTR DS:[EAX+C] 0041C04C JE SHORT MInstall.0041C06C 0041C04E CALL MInstall.0042287D 0041C053 MOV EBX,DWORD PTR DS:[EAX+C] 0041C056 PUSH 5 ; /ResourceType = RT_DIALOG 0041C058 PUSH DWORD PTR DS:[ESI+40] ; |ResourceName 0041C05B PUSH EBX ; |hModule 0041C05C CALL DWORD PTR DS:[<&KERNEL32.FindRes>; \FindResourceA 0041C062 PUSH EAX ; /hResource 0041C063 PUSH EBX ; |hModule 0041C064 CALL DWORD PTR DS:[<&KERNEL32.LoadRes>; \LoadResource 0041C06A MOV EDI,EAX 0041C06C TEST EDI,EDI 0041C06E JE SHORT MInstall.0041C07A 0041C070 PUSH EDI ; /nHandles 0041C071 CALL DWORD PTR DS:[<&KERNEL32.LockRes>; \SetHandleCount 0041C077 MOV DWORD PTR SS:[EBP-18],EAX 0041C07A CMP DWORD PTR SS:[EBP-18],0 0041C07E JNZ SHORT MInstall.0041C088 0041C080 OR EAX,FFFFFFFF 0041C083 JMP MInstall.0041C170 0041C088 MOV ECX,ESI 0041C08A CALL MInstall.0041BFA3 0041C08F MOV DWORD PTR SS:[EBP-14],EAX 0041C092 CALL MInstall.0041CE39 0041C097 XOR EDI,EDI 0041C099 CMP DWORD PTR SS:[EBP-14],EDI 0041C09C MOV DWORD PTR SS:[EBP-20],EDI 0041C09F JE SHORT MInstall.0041C0BF 0041C0A1 PUSH DWORD PTR SS:[EBP-14] ; /hWnd 0041C0A4 CALL DWORD PTR DS:[<&USER32.IsWindowE>; \IsWindowEnabled 0041C0AA TEST EAX,EAX 0041C0AC JE SHORT MInstall.0041C0BF 0041C0AE PUSH EDI ; /Enable => FALSE 0041C0AF PUSH DWORD PTR SS:[EBP-14] ; |hWnd 0041C0B2 CALL DWORD PTR DS:[<&USER32.EnableWin>; \EnableWindow 0041C0B8 MOV DWORD PTR SS:[EBP-20],1 0041C0BF PUSH ESI 0041C0C0 MOV DWORD PTR SS:[EBP-4],EDI 0041C0C3 CALL MInstall.0041CDED 0041C0C8 PUSH DWORD PTR SS:[EBP-14] 0041C0CB CALL MInstall.0041C93A 0041C0D0 PUSH EBX 0041C0D1 PUSH EAX 0041C0D2 PUSH DWORD PTR SS:[EBP-18] 0041C0D5 MOV ECX,ESI 0041C0D7 CALL MInstall.0041BD3B 0041C0DC CMP EAX,EDI 0041C0DE JE SHORT MInstall.0041C132 0041C0E0 TEST BYTE PTR DS:[ESI+24],10 0041C0E4 JE SHORT MInstall.0041C100 0041C0E6 PUSH 4 0041C0E8 MOV ECX,ESI 0041C0EA POP EBX 0041C0EB CALL MInstall.0041EFAA 0041C0F0 TEST AH,1 0041C0F3 JE SHORT MInstall.0041C0F8 0041C0F5 PUSH 5 0041C0F7 POP EBX 0041C0F8 PUSH EBX ; /Arg1 0041C0F9 MOV ECX,ESI ; | 0041C0FB CALL MInstall.0041E976 >>>>> Переход 0041C100 CMP DWORD PTR DS:[ESI+1C],EDI ................. А там чего то конца и края не видать |
|
Создано: 20 сентября 2005 13:18 · Личное сообщение · #12 А как брякнуться перед самым появлением окна? & Как брякнуться после нажатия кнопки? Может кто-нибудь посмотрит прогу, пожалуйста 7fb6_ProgaInstall.part1.rar |
|
Создано: 20 сентября 2005 13:28 · Личное сообщение · #13 |
|
Создано: 20 сентября 2005 13:29 · Поправил: IvanStepkin · Личное сообщение · #14 Насчёт бряка перед самым появлением окна: посмотрел номер ресурса, поставил бряк там где используется этот номер, дальше иду по коду (F7, F8) и натыкаюсь похоже на цикл, на который у меня не хватает терпения (даже с Ctrl+F8). Если крутить этот цикл, а когда надоест, взять да и запустить программу (F9), то сразу появится окно! ---------------- Брякнулся на эту функцию (CreateDialogIndirectParamA), иду по коду, а потом снова попадаю на тот цикл. 8ba3_ProgaInstall.part2.rar |
|
Создано: 20 сентября 2005 21:45 · Личное сообщение · #15 |
|
Создано: 21 сентября 2005 01:16 · Личное сообщение · #16 |
|
Создано: 27 сентября 2005 15:02 · Личное сообщение · #17 |
|
Создано: 27 сентября 2005 21:37 · Поправил: nice · Личное сообщение · #18 IvanStepkin Ну посмотрел, там должен быть какой-то файл, пароль RER2MGBN если пропатчить проверку или ввесли этот код, то программа говорит, что не найден соот-щий файл если и эту проверку проигнорировать, то программа пытается создать процесс (я так понимаю из файла, который не находит) и виснет, т.к. файла нет 00401B9E > 5>PUSH ECX ; MInstall.004310D4 - это процедура проверки ----- Подписи - ЗЛО! Нужно убирать! |
|
Создано: 27 сентября 2005 21:56 · Личное сообщение · #19 |
|
Создано: 28 сентября 2005 00:49 · Личное сообщение · #20 |
|
Создано: 28 сентября 2005 02:09 · Личное сообщение · #21 IvanStepkin Сама ф-ия вызова окна вот: 0041BE9B EB 03 JMP SHORT MInstall.0041BEA0 Отсюда прыгаем Эта АПИ создает окно, тебе нужно перенаправить этот дамп, на обработчик кнопки, и сот-но подравнять стэк, а то программа упадет 0041BEAD . FF15 F4734200 CALL [DWORD DS:<&USER32.CreateDialogIndi>; \CreateDialogIndirectParamA ----- Подписи - ЗЛО! Нужно убирать! |
|
Создано: 28 сентября 2005 02:25 · Личное сообщение · #22 |
|
Создано: 28 сентября 2005 02:33 · Личное сообщение · #23 |
|
Создано: 28 сентября 2005 03:27 · Личное сообщение · #24 |
|
Создано: 28 сентября 2005 08:45 · Поправил: IvanStepkin · Личное сообщение · #25 |
|
Создано: 28 сентября 2005 12:22 · Личное сообщение · #26 |
|
Создано: 28 сентября 2005 13:09 · Личное сообщение · #27 |
|
Создано: 29 сентября 2005 14:57 · Поправил: IvanStepkin · Личное сообщение · #28 Не могу разобраться с параметрами функции, которые необходимо исправить в стеке. Подскажите, пожалуйста. 0041BE8C PUSH ESI 0041BE8D CALL MInstall.0041CDED 0041BE92 MOV EAX,DWORD PTR SS:[EBP+C] 0041BE95 CMP EAX,EBX 0041BE97 JNZ SHORT MInstall.0041BE9D 0041BE99 XOR EAX,EAX 0041BE9B JMP SHORT MInstall.0041BEA0 ; Этот джамп я перенапрявлю на обработчик кнопки, 0041BE9D MOV EAX,DWORD PTR DS:[EAX+1C] ; как советовал nice. 0041BEA0 PUSH EBX 0041BEA1 PUSH MInstall.0041BB83 0041BEA6 PUSH EAX 0041BEA7 PUSH DWORD PTR SS:[EBP+8] 0041BEAA PUSH DWORD PTR SS:[EBP+10] 0041BEAD CALL DWORD PTR DS:[<&USER32.CreateDialogIndirectParamA>] 0041BEB3 LEA ECX,DWORD PTR SS:[EBP-1C] 0041BEB6 MOV DWORD PTR SS:[EBP-18],EAX 0041BEB9 MOV BYTE PTR SS:[EBP-4],BL 0041BEBC CALL MInstall.0041A441 0041BEC1 JMP SHORT MInstall.0041BEE0 0041BEC3 MOV ECX,DWORD PTR SS:[EBP-2C] 0041BEC6 CALL MInstall.0041F5F2 0041BECB MOV EAX,DWORD PTR SS:[EBP-24] _____________ 00401B72 PUSH 0 00401B74 PUSH MInstall.004310D4 00401B79 MOV ECX,EDI 00401B7B CALL MInstall.00419349 ; функция проверки пароля 00401B80 TEST EAX,EAX 00401B82 JNZ SHORT MInstall.00401B9E ; Если пароль верен, то переход - *1 00401B84 MOV ECX,ESI 00401B86 CALL MInstall.00402140 00401B8B MOV ECX,DWORD PTR SS:[ESP+2C] 00401B8F MOV DWORD PTR FS:[0],ECX 00401B96 POP EDI 00401B97 POP ESI 00401B98 POP EBP 00401B99 POP EBX 00401B9A ADD ESP,28 00401B9D RETN 00401B9E PUSH ECX ; *1 Переход сюда. И сюда я хочу сделать джамп с адреса 0041BE9B 00401B9F MOV ECX,ESP 00401BA1 MOV DWORD PTR SS:[ESP+14],ESP 00401BA5 PUSH EDI 00401BA6 CALL MInstall.0041A1B6 00401BAB LEA EBX,DWORD PTR DS:[ESI+194] 00401BB1 MOV ECX,EBX |
|
Создано: 14 октября 2005 11:28 · Личное сообщение · #29 Новая загвоздка!!! Объясните, пожалуйста!! Исправляю переход по адресу 0041BE9B с "JMP SHORT MInstall.0041BEA0" на "JMP MInstall.00401B9E". Сохраняю (Hiew32) изменения, открываю этот изменённый файл в Olly, а на этом месте ерунда какая-то! Посмотрите аттач, там три картинки: 1 - до изменений, 2 - изменено, 3 - изменённое место в Olly Может, я как-то не так исправил??? beb5_MInst.rar |
|
Создано: 14 октября 2005 13:38 · Личное сообщение · #30 вариантов несколько: - убей <имя_файла.udd> в папке проектов OllyDbg - Нажми Ctrl-A (Analyse Code) - Контекстное меню -> Analyzis -> Remove analysis from module последний способ - самый простой, с него начни ;) всё из-за того, что Оля раньше этот файл уже анализировала и видела его другим ;) ----- EnJoy! |
. 1 . 2 . >> |
eXeL@B —› Основной форум —› Как убрать окно? |