Отдирание ASProtect 2.1 от файла.

Discussion in 'Реверсинг' started by 0x0c0de, 27 May 2007.

  1. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Решил разобраться с принципом работы ASProtect 2.1 (опыт распаковки более ранних версий был). Возникла следующая проблема. Запаковал им блокнот. На последнем исключении поставил точку останова на секцию с кодом. Сработало, но в теле аспра. Перешел по адресу OEP, заранее мне известному. А там как раз джамп в секцию ASProtect.
    Oep:

    0100739D .- E9 DB8EA6FF JMP 00A7027D

    Перешел по этому адресу.

    00A7027D 6A 70 PUSH 70
    00A7027F EB 02 JMP SHORT 00A70283
    00A70281 CD20 FF742410 VxDCall 102474FF
    00A70287 66:9C PUSHFW
    00A70289 57 PUSH EDI
    00A7028A 64:EB 02 JMP SHORT 00A7028F ; Superfluous prefix
    00A7028D CD20 8D3C11F2 VxDCall F2113C8D
    00A70293 EB 01 JMP SHORT 00A70296
    00A70295 - E9 F3EB02CD JMP CDA9EE8D
    00A7029A 2003 AND BYTE PTR DS:[EBX],AL
    00A7029C FA CLI
    00A7029D F3: PREFIX REP: ; Superfluous prefix
    00A7029E EB 02 JMP SHORT 00A702A2
    00A702A0 CD20 8D7C245C VxDCall 5C247C8D

    Ну то есть мало того, что аспр в свое тело переносит oep, он еще ее и с мусором смешивает. Как восстанавливать все на место не представляю. Может кто сталкивался?
     
  2. !_filin_!

    !_filin_! Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    86
    Likes Received:
    40
    Reputations:
    16
    Если я не ошибаюсь то эта версия использует Vm (виртуальную машину) . Фактически аспр крадёт туеву хучу команд, и все их надо восстанавливать вручную очень трудоёмкий процесс...Насколько я помню где то в просторах инэта валяется скрипт для Ольки по восстановлению...Но по моему опыту он очень нестабильный. Стыдно признатся но именно из за Vm я откладываю большенство взломов. Многие сейчас криптуют аспром свои проги....
     
  3. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Спасибо. Материал отыскал. То, что я нашел - VOEP (Virtual OEP). Как с этим работать буду разбираться.
     
  4. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    00A70281 CD20 FF742410 VxDCall 102474FF

    ахха че за VxDCall ?)
    это же INT 20

    че у тебя за отладчик, который так любит вин9х-ные vxd
     
  5. !_filin_!

    !_filin_! Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    86
    Likes Received:
    40
    Reputations:
    16
    а вообще давай линк на саму прогу..таки легче самому один раз увидеть чем...сто раз читать..
     
    3 people like this.
  6. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    или юзай 9 бетку стриппера, которая восстановит вм-интрсукции сама
     
  7. !_filin_!

    !_filin_! Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    86
    Likes Received:
    40
    Reputations:
    16
    проверял стриппер (последний (совсем последний, жалко что закрылся проэкт)) на АСпре 2.1 Ske-не распаковал, как мне кажется тут тоже Ske...
     
  8. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Файл выложи попробую распаковать =\
     
  9. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Мля... а я так и не понял о чем идет речь.. автор говорит, что ASPr ворует инструкции, это называется "stolen bytes"
    вы говрите вм.. имхо vm - это другое (типа конечные автоматы и тп) (Rascal вам еще покажет, что такое VM)
    Я читал множество статей про PESpin и подобные проты, и везде это называлось "stolen bytes".
    И вот что по поводу я говорю... их не обязательно восстанавливать! (Если пизженые баыты лежат в какойто секции. Вот если на выделенной памяти, тогда да). К примеру в том же PESpin.. я просто нашел stolen bytes и сказал что это EP. И все работало.. Другое дело если украденные байты записываются на динамически выделенную память.. Как у автора "/.. Тогда после дампа, сам понимаешь.. Они так и останутся безвестно пропавшими.. Поэтому тебе нужно их скопировать куданибудь в секцию..

    to _Great_
    Походу у него Olly, только как то тупо настроенна

    to Топикстартер
    Выкладывай файл
     
  10. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Запаковал блокнот чисто для интереса. Мануалы нашел, пару дней, думаю за ними просижу. Память под украденные с oep байты выделяется в процессе работы программы (проверял, ставил бряк на VirtualAlloc). А виртуальная машина (по крайней мере во всех описаниях встречается именно этот термин) там действительно используется,т.е. при работе программы код разбросан по разным участкам памяти при этом изрядно замусорен. А распаковать все же попытаюсь сначала сам.
     
    #10 0x0c0de, 29 May 2007
    Last edited: 29 May 2007