| eXeL@B —› Протекторы —› ASProtect 1.22-1.23 beta 21 by Alexei Solodovnikov |
| Посл.ответ | Сообщение |
|
|
Создано: 23 ноября 2005 22:25 · Личное сообщение · #1 Здравствуйте уважаемые господа крякеры. Ломаю прогу Advanced system agent v2.77. PEiD говорит сабж. Generic OEP Finder из PEiD показывает OEP 0045ABFB. Гружу в Ольку, на OEP ставлю бряк Memory On Access. Когда тормозится - дамплю, восстанавливаю импорт ImpRec'ом. Но полученный EXE'шник запускаться не хочет. При попытке загрузить его в Olly Debug последний(ая) жутко матерится. Что посоветуете сделать? Вот ссылка на файл: webfile.ru/650518 ----- The truth is out of there... ![]() |
|
|
Создано: 24 ноября 2005 00:38 · Личное сообщение · #2 |
|
|
Создано: 24 ноября 2005 09:34 · Личное сообщение · #3 |
|
|
Создано: 24 ноября 2005 22:11 · Личное сообщение · #4 |
|
|
Создано: 25 ноября 2005 11:41 · Личное сообщение · #5 Для версии 2.73 00458BFF 55 PUSH EBP ; This is the entry point (OEP) 00458C00 8BEC MOV EBP,ESP 00458C02 6A FF PUSH -1 00458C04 68 08CE4600 PUSH Advanced.0046CE08 00458C09 68 6A8D4500 PUSH Advanced.00458D6A ; JMP to msvcrt._except_handler3 00458C0E 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00458C14 50 PUSH EAX 00458C15 64:8925 00000000 MOV DWORD PTR FS:[0],ESP 00458C1C 83EC 68 SUB ESP,68 00458C1F 53 PUSH EBX 00458C20 56 PUSH ESI 00458C21 57 PUSH EDI 00458C22 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP 00458C25 33DB XOR EBX,EBX 00458C27 895D FC MOV DWORD PTR SS:[EBP-4],EBX 00458C2A 6A 02 PUSH 2 00458C2C FF15 94584600 CALL DWORD PTR DS:[465894] ; msvcrt.__set_app_type ----- 00458D22 58 POP EAX 00458D23 50 PUSH EAX 00458D24 56 PUSH ESI 00458D25 53 PUSH EBX 00458D26 53 PUSH EBX 00458D27 FF15 4C514600 CALL DWORD PTR DS:[46514C] 00458D2D 50 PUSH EAX 00458D2E E8 7D000000 CALL Advanced.00458DB0 <<-- Здесь вылетает А это лог стриппера AsprStripperXP v1.23 (second edition) (c) by syd, kiev, 2002 13:40:24 - open C:\Advanced System Agent\Advanced System Agent.exe... 13:40:33 - executing.. 13:40:34 - dumping.. 13:40:34 - processing import table.. 13:40:34 - fixing import table.. 13:40:34 - blacklist is not cleaned.. ApiEntry RVA :000357e0 *esp = (00a4098f, 00a33405, 0012ffe0) 13:40:34 - no stolen bytes are found.. EntryPoint RVA :00058bff 13:40:35 - saving unpacked file.. 13:40:35 - done.. ![]() |
|
|
Создано: 25 ноября 2005 12:18 · Поправил: Smon · Личное сообщение · #6 Возможно там где вылетает - что то с несуществующим регионом связано, можно попробовать поглядеть место внутри калла, где вылетает =) Такой прикол был в самих аспаках -> после снятия аспра надо ручками несколько мест подправить =) Хотя может в том калле простая проверка на распаковку
----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
|
Создано: 25 ноября 2005 21:55 · Поправил: DillerInc · Личное сообщение · #7 Smon А можно ли подробнее насчёт несуществующего региона? Smon пишет: Хотя может в том калле простая проверка на распаковку ...не думаю...по крайней мере не нашёл. Сейчас ковыряю версию 2.77 и вот что заметил: - при выходе из определённой процедуры,после команды RET,в распакованном варианте мы попадаем как бы куда должны были,а в запакованном - совсем в другое место,где впоследствии программа и запускается.Простая передача управления в нужное место в распакованном варианте не проходит - ошибка доступа. - в одном месте в EAX кладётся адрес,по которому в запакованном варианте куча всяких байт,а в распакованном там ничего нету.Поэтому я и спрашиваю про несуществующий регион.Причём самое странное,что если посмотреть дамп в hex-редакторе,то все эти байты на месте,а вот после загрузки в память они куда-то улетучиваются. В общем,если кому вдруг интересно,то как говорится: "Давайте ковырять вместе" .
Скачать можно тут http://fileforum.betanews.com/detail/Advanced_System_Agent/967098564/1 , весит 827КБ. ----- the Power of Reversing team ![]() |
|
|
Создано: 27 ноября 2005 14:47 · Поправил: Smon · Личное сообщение · #8 DillerInc Поглядел... регионы не используются... где то проверка на распак есть, причем не обязательно с использованием функций типа CreateFileA =) Просто после некоторых каллов регистры в распакованной и упакованной здорово различаются...., упакованный запускается не доходя до вылетающего калла, распакованный доходит и вылетает - так как там просто ExitProcess юзается, т.е. прога использует этот калл для выхода после нажатия в трее exit =) ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
|
Создано: 30 ноября 2005 12:16 · Поправил: ValdiS · Личное сообщение · #9 DillerInc Действительно интересная программа. После распаковки закрывается сразу без лишних слов. 0045ACCF FF15 9C734800 CALL DWORD PTR DS:[48739C]
В запакованной программе при трассировке по F8 при проходе по адресу 0045ACD6 прога стартует, а распакованная - оказывается на адресе 0045ACDB, т.е. копать надо от адреса 0045ACD6, но копать там немеренно.
Напиши, что наработал ...
ЗЫ Может кому пригодится импорт для Импрека (см. аттач). Единственно, что по адресам 0045AC21 и 0045AC81 импрек неправильно определил GetCurrentProcess, пришлось поправить: 0045AC21 B8 0501280A MOV EAX,0A280105
----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
|
Создано: 30 ноября 2005 12:18 · Личное сообщение · #10 |
|
|
Создано: 30 ноября 2005 18:33 · Личное сообщение · #11 ValdiS Картина следующая: 0047649E MOV EAX, 00486198 ; в распакованной по данному смещению ничего нет ... Трассируя дальше и заходя в определённые процедуры,дойдёшь до следующей процедуры: 00476301 CALL 0046945F ; заходим ... 00469522 RET 002C ; выходим и должны попасть как бы на смещение 00476306... ...но попадаем на смещение 0045749Е, т.к. выше видим вызов той же процедуры: 00457499 CALL 0046945F
Кстати,ты уверен,что ImpRec неправильно определил эти две API в импорте?Почему ты так считаешь? ----- the Power of Reversing team ![]() |
|
|
Создано: 30 ноября 2005 18:45 · Личное сообщение · #12 |
| eXeL@B —› Протекторы —› ASProtect 1.22-1.23 beta 21 by Alexei Solodovnikov |











Для печати