Че то не могу понять чем упакованно (peid юзал, не выдал ничего) http://dump.ru/file/3358890 Помогайте чтоли
так подождите, почему я тогда не могу найти слова типа "Не верный серийный номер" Искал во всех файлах но никак не могу найти слова о неверном серийном номере (или же подобному слову) (точнее искала программа w32dasm (Search Text)) Или я что-то не так делаю?
есть такие слова, как "ресурсы", "юникод"... а иногда ещё есть "защита", что ли. в смысле "шифрование" PS попробуй по слову "serial" поискать
сорри за тупой вопрос, так просто на будущее спрашиваю, есть прога меняет мак адрес ))))) с помощью оллюдбг можно в поле вставить мак адрес, что бы при запуске проги поле было не пустое а с моим маком? и что подменить примерно?
если гуи программа - то можно впаять небольшой инлайн патчик, который будет задавать значение полю. нужно только надебажить нужный момент для вызова внедрения текста - когда окно создано.
кинь ссылку, посмотрим. При запуске GUI приложений обычно оно устанавливает значения текстовых полей функцией SetWindowText, ставь бряки на всех и ищи когда будет текст похожий на текст поля для MAC, то есть как я понимаю, скорее всего пустой "". BOOL SetWindowText ( HWND hWnd, // дескриптор окна или элемента управления LPCTSTR lpString // адрес строчки ); Меняем соответственно push "адрес первого аргумента для SetWindowText" на push твой mac, посмотри свободные байты, найдеш - запиши туда свой mac и push его адрес.
Че то не могу никак найти где вызывается MessageBox Сама программа (упакованная FSG 2.0): http://multi-up.com/137749 Распакованная программа (она же токо распак. вроде как): http://dump.ru/file/3371134 Подскажите что не так делаю?(и так искал поиском MessageBox, по титлу/тексту messagebox'а, ничего не помогает) Я чую что-то не так намудрил с распаковкой (распаковывал этим: http://www.opensc.ws/trojan-malware-releases/5386-fsg-unpacker-plugin-peid.html) (при нажатии на кнопку "Начать" вылезает окно о авторизации)(сейчас задача стоит найти откуда вызывается MessageBox!)
потому что это и не MessageBox вовсе, а окно обыкновенное Code: Стек: 0012F62C 001C086C |hWnd = 001C086C ('Login',class='TForm2') 0012F630 00000001 \ShowState = SW_SHOWNORMAL Код: 0048A19D . E8 EAEDF7FF CALL <JMP.&user32.ShowWindow> ; \ShowWindow Щас все будет ...
прога на дельфи и это дельфовский showmessage. И я хз как он работает). вызывается из процедуры по адресу 0055684C а сам вызов вот тут 00556977 возьми например GODUP Plugin и примени дельфовские сигнатуры из иды. и тогда у тебя определится этот шоу меседж. пс: кстати программа походу сама себе кейген) ну вот не успел)
Начало процедуры, как уже заметил zeppe1in, рекспект ему и уважуха по адресу: 0055684C. Брекйпоинт туда и трассируем по F8: Первый раз мы видим верный серийный номер: Code: 005568D6 |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10] Процедура проверки: Code: 00556908 |. E8 FFF6EAFF CALL unpacked.0040600C Проверка условия: Code: 0055690D |. 75 63 JNZ SHORT unpacked.00556972 А ниже если не было прыжка мы можем увидеть сохранение в файл верного серийного номера: Code: key.ini [key] k=*********
Нужны опкоды MSIL (.NET), нашел 1 сайт, но он китайский http://www.asukaze.net/etc/cil/opcode.html Есть что-нибудь полнее и хотя-бы на английском?
Dosia, хм... спасибо! а как вы нашли это окно обыкновенное? (искал по слову "JMP.&user32.ShowWindow","ShowWindow" ничего вроде не находило (искал в w32dasm,IDA))
Хм, все очень просто, после распаковки файла я открыл его олей, после чего нажал "Ctrl-N", таким образом я выполним поиск всех функций импортируемых исполняемым файлом, после чего нашел в этом списке "ShowWindow", не "JMP.&user32.ShowWindow", а именно ShowWindow, адрес в IAT 570A74
Это мне понятно вроде Но меня интересует сам момент как вы подцепили что именно от туда 0055690D проверка идет (т.е. как именно нашли эту проверку (я понимаю что по showwindow но подробней!))(ведь я же не могу всегда тыкать бряки на каждом углу)
Хороший вопрос, так как декомпилятор нам тут не поможет. Автор данной программы не шифрует строки и это его основная ошибка, именно при поиске строки: "79-81-80", я оказался тут: Как видиш название файла выдает его с головой =) Дальше я сходил по обоим адресам ( 556927, 556ACB )куда пушится строка "key.ini". Поставил бряки на начало данных процедур ( 55684C , 556A98 ). Перезапустил программу. Нажал "Старт", оказался по адресу 556A98, очевидно что там программа проверяла наличие файла или че то типо того, я не стал особо изучать процедуру, така как никаких переходов (вообще никаких ;D) я там не увидел, в общем, я протрассировал это процедуру по "F8". Потом - нажал "F9" (RUN). Всплывает форма (как мы уже выяснили в более ранних постах), текст в поле "ID" подозрительно похож на возвращаемое функцией GetVolumeInformation значение ;D, но это так, лирическое отступление, мы вводим что то типа "qwe123", чтобы потом если че посершить память (спорное конечно заявление ;D). Жмем , прерываемся по адресу 55684C. В процедуре всего 2 перехода: 1) Code: 0055690D 75 63 JNZ SHORT unpacked.00556972 2) Code: 0055687D |. 0F84 F9000000 JE unpacked.0055697C Что мы делаем? мы трассируем процедуру по "F8", первый переход, какой то не понятный, ну и пофик на него, нас то интересует тот, после которого пушится в стек строка "key.ini". Заметьте, сразу после перехода, можно почти со 100% уверенностью сказать, что если перехода не будет - то будет что то интересное. По ходу трассировки этой процедуры до интересующего нас перехода ( 55690D ), как я уже писал можно увидеть настоящий пароль. Переход с адреса 55690D переносит нас по адресу 556972, выше видим безусловный переход ( JMP ), сомнений не остается, переход по адресу 55690D, именно то, что мы искали. Надеюсь теперь все понятно. =)