Реверсинг. Задай вопрос - получи ответ
 |
|

06.09.2009, 23:53
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Начало процедуры, как уже заметил zeppe1in, рекспект ему и уважуха по адресу: 0055684C. Брекйпоинт туда и трассируем по F8:
Первый раз мы видим верный серийный номер:
Код:
005568D6 |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
Процедура проверки:
Код:
00556908 |. E8 FFF6EAFF CALL unpacked.0040600C
Проверка условия:
Код:
0055690D |. 75 63 JNZ SHORT unpacked.00556972
А ниже если не было прыжка мы можем увидеть сохранение в файл верного серийного номера:
Код:
key.ini
[key]
k=*********
Последний раз редактировалось Dosia; 06.09.2009 в 23:58..
|
|
|

07.09.2009, 00:05
|
|
Постоянный
Регистрация: 12.07.2006
Сообщений: 327
С нами:
10437270
Репутация:
117
|
|
Dosia, надо было хоть чегонить wolmer'у оставить)
|
|
|

07.09.2009, 18:45
|
|
Новичок
Регистрация: 29.10.2008
Сообщений: 20
С нами:
9227364
Репутация:
9
|
|
Нужны опкоды MSIL (.NET), нашел 1 сайт, но он китайский http://www.asukaze.net/etc/cil/opcode.html
Есть что-нибудь полнее и хотя-бы на английском?
|
|
|

07.09.2009, 19:23
|
|
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами:
9851426
Репутация:
1676
|
|
И что с того что китайский, пояснения же на английском
|
|
|

08.09.2009, 20:51
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
Dosia, хм... спасибо! а как вы нашли это окно обыкновенное? (искал по слову "JMP.&user32.ShowWindow","ShowWindow" ничего вроде не находило (искал в w32dasm,IDA))
|
|
|

09.09.2009, 10:36
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Хм, все очень просто, после распаковки файла я открыл его олей, после чего нажал "Ctrl-N", таким образом я выполним поиск всех функций импортируемых исполняемым файлом, после чего нашел в этом списке "ShowWindow", не "JMP.&user32.ShowWindow", а именно ShowWindow, адрес в IAT 570A74
|
|
|

09.09.2009, 23:19
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
Сообщение от Dosia
Хм, все очень просто, после распаковки файла я открыл его олей, после чего нажал "Ctrl-N", таким образом я выполним поиск всех функций импортируемых исполняемым файлом, после чего нашел в этом списке "ShowWindow", не "JMP.&user32.ShowWindow", а именно ShowWindow, адрес в IAT 570A74
Это мне понятно вроде
Но меня интересует сам момент как вы подцепили что именно от туда 0055690D проверка идет (т.е. как именно нашли эту проверку (я понимаю что по showwindow но подробней!))(ведь я же не могу всегда тыкать бряки на каждом углу)
|
|
|

10.09.2009, 11:33
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Хороший вопрос, так как декомпилятор нам тут не поможет. Автор данной программы не шифрует строки и это его основная ошибка, именно при поиске строки: "79-81-80", я оказался тут:
Как видиш название файла выдает его с головой =)
Дальше я сходил по обоим адресам ( 556927, 556ACB )куда пушится строка "key.ini". Поставил бряки на начало данных процедур ( 55684C , 556A98 ). Перезапустил программу. Нажал "Старт", оказался по адресу 556A98, очевидно что там программа проверяла наличие файла или че то типо того, я не стал особо изучать процедуру, така как никаких переходов (вообще никаких ;D) я там не увидел, в общем, я протрассировал это процедуру по "F8". Потом - нажал "F9" (RUN). Всплывает форма (как мы уже выяснили в более ранних постах), текст в поле "ID" подозрительно похож на возвращаемое функцией GetVolumeInformation значение ;D, но это так, лирическое отступление, мы вводим что то типа "qwe123", чтобы потом если че посершить память (спорное конечно заявление ;D). Жмем , прерываемся по адресу 55684C. В процедуре всего 2 перехода:
1)
Код:
0055690D 75 63 JNZ SHORT unpacked.00556972
2)
Код:
0055687D |. 0F84 F9000000 JE unpacked.0055697C
Что мы делаем? мы трассируем процедуру по "F8", первый переход, какой то не понятный, ну и пофик на него, нас то интересует тот, после которого пушится в стек строка "key.ini". Заметьте, сразу после перехода, можно почти со 100% уверенностью сказать, что если перехода не будет - то будет что то интересное. По ходу трассировки этой процедуры до интересующего нас перехода ( 55690D ), как я уже писал можно увидеть настоящий пароль. Переход с адреса 55690D переносит нас по адресу 556972, выше видим безусловный переход ( JMP ), сомнений не остается, переход по адресу 55690D, именно то, что мы искали. Надеюсь теперь все понятно. =)
|
|
|

10.09.2009, 13:32
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
Dosia, почему при запуске из OllyDbg у меня не откр программу а выкидывает в отладку модуля kernel32? (в адрес 7C81EB33) (хотя к примеру если запустить крякми из под ollydbg то он запускается нормально)
Автор данной программы не шифрует строки и это его основная ошибка
Что если я столкнусь с программой которая шифрует строки? То как тогда искать эти строки/процедуру проверки?
Последний раз редактировалось wolmer; 10.09.2009 в 13:50..
|
|
|

10.09.2009, 13:41
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Ставить брейкпоинты на GetWindowText, GetDlgItemText ...
Если сообщение - MessageBox
Поиск по памяти.
Также если знаеш что идет сохранение в файл, можно поставить бряки на: CreateFile, WriteFile.
Вообще все зависит от конкретной ситуации =)
Просто надо иметь справочник по функциям API и немного опыта, потому что иногда вызваются специфические функции (VisualBasic - rctMsgBox).
Dosia, почему при запуске из OllyDbg у меня не откр программу а выкидывает в отладку модуля
Хм, затрудняюсь оветить, да и время уже все, мне пора, буду вечером только
Щас zeppe1in еще дополнит =)
Последний раз редактировалось Dosia; 10.09.2009 в 17:56..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|