eXeL@B —› Крэки, обсуждения —› Опять Armadilla |
Посл.ответ | Сообщение |
|
Создано: 03 марта 2006 12:16 · Личное сообщение · #1 Armadilla 4.x с CopyMem II + DebugBlocker + Анти БП + Изварт с импортом Распаковал программу получил хороший чистый код... все красиво и замечательно едивенно не смог никак востановить таблицу импорта... нашел её в нечитабельном виде... а дальше никак... пробывал по туториалам.... находил MagicJump а дальше программа падала... хоть застрелись.... да и ещё одна странность... Вот кусок из распакованой программы...
Сдесь есть довольнатаки забавные моменты например .text:0040108F push offset aArmaccess_dll ; "ArmAccess.DLL" .text:00401094 mov ebx, 1 .text:00401099 call dword ptr ds:0B90E60h Очеьн похоже на вызов LoadLibrary (ArmAccess.DLL её в папку прогарммы нет .. а даже если есть то прогармма именно её не грузит) и оно так и есть скорее всего ... распаковал этот кусок далее пропатчил 004010A3 на вечный цикл (EB FE) далее пускаю программу она там зациклилась делаю DebugActiveProcessStop и перехожу и атачусь в дочерний процесс.... смотрю содержимое регистров esi и eax соотсвенно да значения равны но равны они ImageBase! +) то бишь 0x0400000 странно.... как то... может это и не LoadLibrary а GetModuleHandle ... ну ладно думаю... зациклю дальше вот тут 004010CF прям после вызова тоже некой функции похожей на GetProcessAddress ... думаю ну ладно может хитрость какая то счас получу адрес функции который ниже вызываеться и все.. тут... но не тут то было... адрес фиг знает какой ведет поомему в кривой импорт.... странно как то .. кто нибудь с этим сталкивался? прототип этой функции соотсвенно Имя пользователя и Ключ ... как параметры... но вот адрес функции чего то не пойму как найти .. может он вообще где то в программе ибо где ему ещё быть.... и Арма таким вот хитрым макаром шифруеться как то.... |
|
Создано: 03 марта 2006 12:58 · Личное сообщение · #2 |
|
Создано: 03 марта 2006 13:17 · Поправил: Smon · Личное сообщение · #3 Fallout пишет: находил MagicJump а дальше программа падала Скорее всего его ты нашёл неправильно, а если и правильно, то видимо забыл возвратить всё на место по окончании записи импорта, или пропатчить процедуру проверки. ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels |
|
Создано: 03 марта 2006 13:36 · Личное сообщение · #4 2NIKOLA Да дело то не в импорте даже а в какой то магии почему функция которая должна загрухить библиотеку... возвращает ImageBase вместо загружаной библиотеки... ведь библиотеки даже нет вообще в системе... и если кинуть самописную то почему то опять грузит что то но только не её.... ведь я патчил же процесс после вызова этой АПИ.... и впринцыпи все рвоно востановил я импорт или нет ... Там уже армадила... должна все сделать... ибо я отлаживаемый отцовский процесс отпускаю на вольное выполнение после патчинга.... потом останавливаю.... детачу дочерний процесс .. атачусь к нему и смотрю регистры.... странно вообще.... п.с: испорт я и не выстанавливал я писал уже об этом ибо не получилось... хм... хотя странно же... ведь вызываеться и эта InstallKey .... и пишет потом программа ключ не правильный... если бы она прыгала черти куда наверное бы программа рухнула... |
|
Создано: 03 марта 2006 13:45 · Личное сообщение · #5 |
|
Создано: 03 марта 2006 14:20 · Поправил: Fallout · Личное сообщение · #6 Да я так и понял.... что это эти функции.... хм... получаеться где то в этом же процессе она чтоль поэтому и возвращает ImageBase данного ЕХЕ (0x0400000) странно что LoadLibrary по имени библиотеки может найти её в памяти.... хм.. хотя теоритически если библиотека уже загружена в память то она может вернуть просто её адрес .... а не загружать вновь... но всеровно адрес странноват... .... хм... а GetProcAddress дает адрес не функции все ровно =(... а куда то в переходник.... примерно такогоже вида 0B90XXXX .... забавно... в котором кстати мусарок какой то..... теоритически можно найти эту функцию впатчив сюда:
что нибуть типа
и зациклить код потом пустить его его .... пусть выпонлиться как надо .... и он будет зациклен... после чего.... заатачиться к нашему пропатченому прцоессу поглядеть стек... и найти там байты функции.... если там переходник... то тогда поглядеть куда... если сами байты функции то попробывать в распакованом коде её найти.... просто ну дейсвительно у меня чего то с востановлением импорта гемор какой то... |
|
Создано: 03 марта 2006 14:36 · Поправил: Smon · Личное сообщение · #7 Fallout Чёт ты усложнил всё как то слишком. Всё гораздо проще - после бряка на оеп смотрим на переходники в секции кода, запоминаем адрес первого (не адрес самого JMP DWORD, а адрес куда он показывает) , ставим бряк на запись на 4 байта, которые до него, перезапускаем, брякаемся и глядим - как работает цикл (и ищем в нем магпрыга) - т.е. если нашел и поправил, то переходник в иат не запишется). ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels |
|
Создано: 03 марта 2006 14:52 · Поправил: Fallout · Личное сообщение · #8 Smon Хорошо покавыряю.... счас кстати функцию нашел вроде +) она оказалось по адресу 00AFED8A =) забавно в дамп она не попала.. это точно так что в дампе импорт востнавливать смысла.. нет... хотя есть смысл вообще его востановить ради того хотя бы что бы... он был нормальный при отладке дочернего процесса а конкретно этой функции
странная функция туда идут да два значение имя юзера и номерок.... только вот сама она странная какая то +) ну ладно буду капаться.... Кстати погляджел на адрес.. 00AD0000 в мемори мап куда как раз эта функция попадает ... и там оказалась вроде как эта библиотека |
|
Создано: 03 марта 2006 16:19 · Личное сообщение · #9 |
|
Создано: 03 марта 2006 17:46 · Личное сообщение · #10 |
|
Создано: 03 марта 2006 19:18 · Личное сообщение · #11 |
|
Создано: 03 марта 2006 20:06 · Личное сообщение · #12 |
|
Создано: 03 марта 2006 21:13 · Личное сообщение · #13 |
|
Создано: 03 марта 2006 22:40 · Личное сообщение · #14 |
|
Создано: 04 марта 2006 17:17 · Личное сообщение · #15 NIKOLA Я не люблю крЯки... мне больше нравиться делать кийгены _) Mario555 юю Да это привычка уже стала.. такая поэтому мало кто понимает что пишу... но не всегда А так думаю... нормально отодрать эту ДЛЛ и написать к ней небольшой загрузчик и дальше... смотреть как там все генериться ибо сам ехе хоть и распакованый не нужен |
|
Создано: 04 марта 2006 17:40 · Личное сообщение · #16 Fallout пишет: нормально отодрать эту ДЛЛ и написать к ней небольшой загрузчик и дальше... смотреть как там все генериться ибо сам ехе хоть и распакованый не нужен А я делал так: чтоб не патчить ехе, чтоб он не грузил armaccess.dll, я взял асм и написал "эмуль": .386 .model flat,stdcall option casemap:none include D:\masm32\INCLUDE\WINDOWS.INC include D:\masm32\include\imagehlp.inc include D:\masm32\include\comdlg32.inc include D:\masm32\include\user32.inc include D:\masm32\include\kernel32.inc include D:\masm32\include\masm32.inc includelib D:\masm32\lib\imagehlp.lib includelib D:\masm32\lib\comdlg32.lib includelib D:\masm32\lib\user32.lib includelib D:\masm32\lib\kernel32.lib includelib D:\masm32\lib\masm32.lib .data .code DllEntry proc hInstDLL:HINSTANCE, reasonWORD, reserved1WORD mov eax,TRUE ret DllEntry Endp InstallKey proc near mov eax,1 ret InstallKey endp UpdateEnvironment proc near mov eax,1 ret UpdateEnvironment endp CheckCode proc near mov eax,1 ret CheckCode endp End DllEntry Ну и всё |
|
Создано: 04 марта 2006 19:02 · Личное сообщение · #17 |
|
Создано: 06 марта 2006 13:27 · Личное сообщение · #18 Mario555 Угу ты прав... я InstallKey отлаживал функцию... написать кийген +) чего то я для себя возможным не вижу слишком мнооооого кода и все запутано до черту.... Bit-hack А толку то от этой длл ... там эта функция не типа мол если функция вернула 1 то все мы зареганые пользователи +))) Там если решил зарегистрироваться загружаетсья библиотека, вызываетсья эта функция и на выход +) Так что придеться все таки .... ЕХЕшник патчить ... чтоб не триал и прочие ограничения убрать.. а жаль =( |
eXeL@B —› Крэки, обсуждения —› Опять Armadilla |