![]() |
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 |