Сейчас на форуме: _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Распаковка Asprotect 1.4, не могу найти Base Relocation Table |
Посл.ответ | Сообщение |
|
Создано: 11 октября 2010 12:28 · Личное сообщение · #1 Добрый день, пытаюсь распаковать программу QCollect for DTN iqfeed (http://www.mechtrading.com/ , multi-up.com/353663) PEiD говорит, что это ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov asprinf - [QCollector For DTN], [1], [1.4 build 11.20 Release], [Dave DeLuca]. Сама программа написана на дельфи. Далее я пользовался набором скриптов и мануалами от vnekrilov. Последовательность сделаных мною шагов следующая: 1. Поиск OEP/SBOEP (скрипт "Поиск OEP (SBOEP).osc"). В результате получаем следующую информацию: Code:
2. Раз попорчена таблица INIT, то пытаемся ее восстановить скриптом "Восстановление таблицы INIT.osc". В результате скрипт радостно сообщает, что было восстановлено F6h подпрограмм инициализации и деинициализации. В логе пишет, что: Code:
3. На следующем этапе восстанавливаем IAT & вызовы API соответствующим скриптом. Скрипт говорит "было восстановлено 0h вызовов АПИ второго типа" и "71h вызовов API первого типа". После всего этого, предлагается исправить все проверки целостности кода, восстановить секцию импорта (.idata) в распакованных программах и восстановить эмулированные подпрограммы в коде программы. В логе появляется следующее: Code:
4. CRC-проверок на целостность кода и эмулированных подпрограмм не нашлось, секция импорта успешно восстановилась без особенных проблем, процесс сдампился. 5. Ищу области со stolen code. Их находит довольно много, скриптом "перенос stolen code в секцию RSRC" соответственно, переношу эти области. 6. Далее начинаются сложности: после удаления из файла секций, созданных asprotect'ом, требуется найти внутрях программы правильные значения Base Relocation Table и TLS Directory. TLS Directory нашлась по адресу 001531A8, с ней все хорошо. А вот изначально запись в заголовке сдампленного файла о BRT пишет адрес 001FD9E8, в котором лежит "00 20 00 00 08 00 00 00" (и лежит это в аспротектовской секции .data). Но дело в том, что найти такую последовательность данных в других секциях не удается. Нету их и все тут. Что делать, куды бечь? Таблица должна быть, это же дельфи. ![]() |
|
Создано: 11 октября 2010 13:06 · Личное сообщение · #2 |
|
Создано: 12 октября 2010 02:21 · Личное сообщение · #3 shutty пишет: Таблица должна быть, это же дельфи. Таблица релоков, как правило, используется для DLL, чтобы обеспечить корректировку кода при ее загрузке программой на какой-то адрес памяти, и она очень редко используется в файлах EXE. Для файлов, скомпилированных на дельфи, обязательно должна быть TLS Directory. Поэтому можно смело обнулять Base Relocation Table. ![]() |
|
Создано: 12 октября 2010 13:48 · Личное сообщение · #4 |
![]() |
eXeL@B —› Вопросы новичков —› Распаковка Asprotect 1.4, не могу найти Base Relocation Table |