Сейчас на форуме: (+9 невидимых)

 eXeL@B —› Протекторы —› Декомпилятор ВМ
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 23 . 24 . >>
Посл.ответ Сообщение


Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 03 марта 2010 12:33
· Личное сообщение · #1

Вашему вниманию предлагаются наработки по декомпиляции ВМ.
Проект на сегодняшний день для меня завершен, но жаль если результат "ляжет на полку", может кому-нибудь и пригодится. Предлагаю сначала ознакомиться с обзором, и если будет интерес то могу выложить и сам плагин, или здесь или в личку заинтересованным лицам, каким образом, пока ещё не решил...
Но если кто-либо ожидает увидеть "автоматическое чудо", то сразу скажу - его нет. Для того чтобы получить результат нужна ручная предварительная работа:
- с исследуемой программы должна быть снята упаковка
- точки входа в ВМ находятся вручную
- возможно неоднократное "жамкание" клавиш в OllyDbg, а возможно и модификация кода, чтобы попасть в нужное место, в зависимости от защищенной функции
- необходимо вручную прицепить к программе требуемый секцию
- запись результатов в файл это тоже ручная работа, но уже более приятная

Не всё гладко обстоит с определением реализаций ВМ, на сегодняшний день примерно каждая третья реализация автоматом не определяется, приходится под неё модернизировать плагин, т.к. не могу сразу предусмотреть все случаи "издевательств" ВМ с кодом примитивов. Лучше дела с восстановлением "исходного" кода защищенных функций - 70% нормально восстанавливается, хотя во многом это зависит от самой структуры функции. Таким образом, если будет заинтересованность и помощь в нахождении подобных ситуаций, то проект может быть доведен до релизной стадии.

ЗЫ: Речь идет об Ореановских машинах. Нигде специально не упоминал.

9c41_03.03.2010_CRACKLAB.rU.tgz - VMSweeperLst.rar

-----
Everything is relative...





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 11 октября 2010 13:50
· Личное сообщение · #2

pavka пишет:
Просто навесить как пугало не обрабатывая процедуры.

Это конечно можно, только если выбраны опции защиты файла, то несколько вм все равно будет в самом протекторе, это и приведен исходный код начала протектора, сидит прямо на EP.

-----
Everything is relative...





Ранг: 95.2 (постоянный), 26thx
Активность: 0.060
Статус: Участник

Создано: 11 октября 2010 16:39
· Личное сообщение · #3

Вы сказали старой версии, сомневаюсь, что новая чем то сильно отличается в плане виртуализации (и вообще отличается).




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 11 октября 2010 17:18
· Личное сообщение · #4

inf1kek пишет:
и вообще отличается

Отличия то есть, я о них где-то выше говорил, но основные отличия кода завязаны на опциях, поэтому даже если взять два кода одной версии вм сделанные с разными опциями, то разница между ними может быть огромна...

-----
Everything is relative...




Ранг: 35.4 (посетитель), 15thx
Активность: 0.020
Статус: Участник

Создано: 07 ноября 2010 21:23
· Личное сообщение · #5

Подскажите по началу (входу в вм) у themida - плагин проверяет какие-то конкретные признаки валидности входа а-ля:
jmp _l1
_l1:
push XXXXX;
jmp vm
учитывая мусор в коде или надо руками чуток расчистить этот мусор pushad\popad и т.п. и только потом F1? А то плагин выдает что не там мол находимся, хотя я отлично вижу что место входа в вм верное.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 07 ноября 2010 21:41
· Личное сообщение · #6

neprovad пишет:
Подскажите по началу (входу в вм) у themida

Темиду плагин декомпилировать не умеет, возможно только нахождение точек входа в эту вм через Find all reference.
neprovad пишет:
или надо руками чуток расчистить этот мусор

руками ничего расчищать не надо, если распознает вм на точке входа, то начинает её декомпиляцию

-----
Everything is relative...




Ранг: 35.4 (посетитель), 15thx
Активность: 0.020
Статус: Участник

Создано: 08 ноября 2010 23:57
· Личное сообщение · #7

Vamit
Благодарю за разъяснение, могли бы вы для примера привести программу с themida (или выложить) на которой можно "поупражняться"?




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 09 ноября 2010 09:09 · Поправил: Vamit
· Личное сообщение · #8

neprovad пишет:
программу с themida (или выложить) на которой можно "поупражняться"

Поупражняться в чем, в нахождении точек входа? Мне проще выложить декомпиль в текущем состоянии, а там - пробуйте сами. Но сразу могу сказать - конечного результата по декомпиляции вмпрота ещё нет, но ковыряние в коде с ним значительно упрощается...

-----
Everything is relative...





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 09 ноября 2010 14:32
· Личное сообщение · #9

Вот это можно опробовать. Если будет падать с какой-либо ошибкой, то ищем в созданных файлах строку с #ERROR#, в ней будет всё сказано...

6801_09.11.2010_CRACKLAB.rU.tgz - VMSweeper13beta.rar

-----
Everything is relative...




Ранг: 63.8 (постоянный), 2thx
Активность: 0.030
Статус: Участник

Создано: 16 ноября 2010 18:02 · Поправил: drin
· Личное сообщение · #10

тестил на двух программах с CV, в обоих случаях ошибки:

на тестовой программе такого содержимого:
Code:
  1. program Test01;
  2.  
  3. uses
  4.   Windows;
  5.  
  6. begin
  7.   asm
  8.     push 0  
  9.     push 0
  10.     push 0
  11.     push 0
  12.     {$I asm_Virtualizer_Start.inc}
  13.     call MessageBox
  14.     {$I asm_Virtualizer_End.inc}
  15.     push 0
  16.     call exitprocess
  17.   end;
  18. end.

вывалилось с:
Code:
  1. Not a VM command - 0xFA!
  2. Can't execute VM command 0xFA in addres 0x00411214!


на CheckVirtualizer.exe входящем в комплект CV
Code:
  1. Not a VM command - 0xF4!
  2. Can't execute VM command 0xF4 in addres 0x0040A80C!


в обоих случаях использовалась последняя версия CV - 1.3.8, если нужно могу выслать самих жертв...
P.S.: есть возможность тестить на последних лицензионных версиях WinLicense




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 17 ноября 2010 14:52 · Поправил: Vamit
· Личное сообщение · #11

Восстановлен первый реальный код из полностью съеденного вмпротом ОЕПа:
Code:
  1. 01AB60A0: push ebp
  2. 01AB60A6: mov ebp, esp
  3. 01AB611B: push 0xFFFFFFFF
  4. 01AB61A3: push 0x004815C0
  5. 01AB6242: mov eax, dword ptr fs:[0]
  6. 01AB6205: push 0x00453F80
  7. 01AB6252: push eax
  8. 01AB62EE: mov dword ptr fs:[0], esp
  9. 01AB6389: sub esp, 0x00000058
  10. 01AB6522: push ebx
  11. 01AB6528: push esi
  12. 01AB652E: push edi
  13. 01AB65BC: mov dword ptr [ebp + 0xFFFFFFE8], esp
  14. 01AB7C0C: call 0x01A1B8C1
  15. 01AB7C48: nop 
  16. 01AB7D26: mov dl, ah
  17. 01AB7D8F: mov ecx, eax
  18. 01AB7E37: and ecx, 0x000000FF
  19. 01AB7E6A: mov dword ptr ds:[1A063F4], edx
  20. 01AB7ED8: shl ecx, 0x08
  21. 01AB7F43: add ecx, edx
  22. 01AB7F75: mov dword ptr ds:[1A063F0], ecx
  23. 01AB8020: shr eax, 0x10
  24. 01AB805F: mov dword ptr ds:[1A063EC], ecx
  25. 01AB80E9: mov dword ptr ds:[1A063E8], eax
  26. 01AB8128: push 1
  27. 01AB99F6: call 0x00454150
  28. 01AB9ADA: pop ecx
  29. 01AB9D9C: jz 0x0044FE65
  30. 01ABB734: call 0x0045277C
  31. 01ABB81F: test eax, eax
  32. 01ABBAB3: jz 0x0044FE40
  33. 01ABBB66: xor esi, esi
  34. 01ABBCBB: mov dword ptr [ebp + 0xFFFFFFFC], esi
  35. 01ABD379: call 0x00456635
  36. 01ABEC3B: call 0x01A262B1
  37. 01ABEC77: nop 
  38. 01ABED90: mov dword ptr ds:[1A080A8], eax
  39. 01AC06DD: call 0x00456503
  40. 01AC0834: mov dword ptr ds:[1A06440], eax
  41. 01AC1ED1: call 0x004562B6
  42. 01AC37FB: call 0x004561FD
  43. 01AC513D: call 0x0044E8F6
  44. 01AC5223: lea eax, dword ptr [ebp + 0xFFFFFFA4]
  45. 01AC52AF: mov dword ptr [ebp + 0xFFFFFFD0], esi
  46. 01AC52B4: push eax
  47. 01AC6C3A: call 0x01A292D6
  48. 01AC6C76: nop 
  49. 01AC8481: call 0x004561A5
  50. 01AC8625: mov dword ptr [ebp + 0xFFFFFF9C], eax
  51. 01AC8946: jz 0x0044FDF3
  52. 01AC8B2D: mov eax, dword ptr [ebp + 0xFFFFFFD4]
  53. 01AC8CE3: push eax
  54. 01AC8D47: push dword ptr [ebp + 0xFFFFFF9C]
  55. 01AC8D4B: push esi
  56. 01AC8D51: push esi
  57. 01ACA549: call 0x01A299F7
  58. 01ACA585: nop 
  59. 01ACA5E6: push eax
  60. 01ACBE7B: call 0x004694C0
  61. 01ACBFA4: mov dword ptr [ebp + 0xFFFFFFA0], eax
  62. 01ACD6D7: call 0x0044E923
  63. 01ACEF92: call 0x0044FDD5
  64. 01AD09AB: call 0x0044FDD5
  65. 01AD0D3D: push esi
  66. 01AD253F: call 0x01A299F7
  67. 01AD257B: nop 


-----
Everything is relative...




Ранг: 57.1 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 17 ноября 2010 16:13
· Личное сообщение · #12

P.S.:
Я думаю тебя надо называть не "Vamit", а "UnDermatolog"




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 04 декабря 2010 12:27 · Поправил: Vamit
· Личное сообщение · #13

Очередная версия VMSweeper 1.3 (beta 12):
- полное восстановление импорта после VMProtect
- устранен сегмент .vm, к исследуемому файлу больше ничего цеплять не нужно
- улучшен поиск точек входа в вм
- улучшено распознавание типов вм
- shortcut Shift+F1 упрощает продолжение анализа кода вм
- увеличено общее быстродействие при всех операциях
- повышен процент успешной декомпиляции кода под VmProtect (успешная для меня - когда более 50% кода распознано и восстановлено автоматически, а 100% восстановление кода пока возможно только в 5-10% случаев и только на некоторых версиях VmProtect, а каких неизвестно т.к. он о себе не сообщает)
- обновлено Руководство пользователя, с которого и следует начать...

ЗЫ: Смотрим пост №20...

-----
Everything is relative...




Ранг: -2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 декабря 2010 23:11
· Личное сообщение · #14

Vamit пишет:
а каких неизвестно т.к. он о себе не сообщает

--> VMP UnpackMe's from 1.7 - 2.06 <--




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 05 декабря 2010 15:13
· Личное сообщение · #15

Bro-ho-ho
Ну и что, причем здесь упаковка файла, я ей не занимаюсь, только декомпиляция защищенных функций и восстановление импорта.

-----
Everything is relative...




Ранг: 4.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 05 декабря 2010 21:03
· Личное сообщение · #16

Новая ошибка стала выбивать в 2-х прогах на которых проверял:
Cycle VMProtect not recognized!
Can't recognize VM cycle!




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 05 декабря 2010 21:42
· Личное сообщение · #17

Новая ошибка стала выбивать в 2-х прогах на которых проверял
А с предыдущей версией эта ошибка была? Если не было, то выложи куда-нибудь прогу и дай ссылку в личку.

-----
Everything is relative...




Ранг: -2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 декабря 2010 00:26
· Личное сообщение · #18

Vamit пишет:
причем здесь упаковка файла

значит архив не смотрел, а зря .....
автор статьи, использовал защиту разных версий, с разными опциями, для разных приблудок, скомпиленых разными линкерами....
//В общем предложено самому проверить, чтоб не отписывать разные егоры.



Ранг: 4.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 06 декабря 2010 00:34 · Поправил: m0bscene
· Личное сообщение · #19

А с предыдущей версией эта ошибка была?
Нет, раньше такого не было. Сейчас скину в личку.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 06 декабря 2010 17:37 · Поправил: Vamit
· Личное сообщение · #20

Кое-что исправлено...

8857_06.12.2010_CRACKLAB.rU.tgz - WMSweeper13beta13.rar

-----
Everything is relative...


| Сообщение посчитали полезным: DGX, _ruzmaz_, Gideon Vi

Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 06 декабря 2010 21:54
· Личное сообщение · #21

Vamit пишет:
Кое-что исправлено...

Вот теперь нормально работает, спасибо, а в предидушей, из поста #13, когда анализ доходил до 99.9%, то Оля тупо вылетала




Ранг: 88.2 (постоянный), 111thx
Активность: 0.070.01
Статус: Участник

Создано: 07 декабря 2010 00:46 · Поправил: Airenikus
· Личное сообщение · #22

А у меня такая беда

Саму прогу анпакнул, сделал поиск точек входа в ВМ, поставил бряк, запустил прогу, стопнулся, нажал Ф1, он что-то погонял прогресс бар и выдал:



Попробывал другую точку:






Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 07 декабря 2010 10:33 · Поправил: Vamit
· Личное сообщение · #23

Так... пошла волна вопросов, попытаюсь их минимизировать по стадиям обработки. Инструмент ещё не совершенен, сообщений об ошибках может быть много, но посты типа Airenikus кроме мусора никакой инфы не дают, хотя если заглянуть в логи и трейсы, то почти на 100% можно определить причину появления ошибки - для кого я их делал такими подробными??? Если хотите разобраться в своей проге, то приложите усилия для понимания логов и трейсов, там ничего сложного нет и всё прозрачно.
Теперь пройдусь по стадиям обработки:
1. Analyse all VM references. Процесс должен пройти 100% весь код, восстановить весь импорт, включая ИАТ и вызовы/обращения к АПИ функциям. Должное внимание следует уделить заданию диапазонов адресов кода и вм, от их правильности зависит вся дальнейшая работа. Эти диапазоны могут охватывать более одной секции файла и могут перекрываться. По диапазону кода пояснения не требуются - это рабочий диапазон кода программы. Требования к диапазону вм - охватить им все места размещения вм. Критические части ВМ, которые обязательно должны находиться внутри этого диапазона:
- начальный адрес ленты пикода
- таблица обработчиков примитивов
А так как вмпротект занимает собой все свободные места в проге, то диапазон вм может быть от начала кода до конца файла. Но следует учитывать, чем шире этот диапазон, тем больше мусора (ложных точек входа) будет найдено, но ничего пропущено не будет, если дипазон вм задать уже (по сегментам вм), то возможен пропуск как точек входа, так и импорта и в дальнейшем можем получить сообщения о нераспознаваемости частей вм. Если во время работы этого процесса получаем сообщение об ошибке, то первым делом ищем в последних логах/трейсах строку с #ERROR# и сообщаем о ней.
2. Decode VM. Этот процесс состоит из нескольких частей:
- Определение типа вм. Должно быть 100% распознавание - в случае ошибки смотрим файлы Regs_ххх и Stack_xxx, и если знаем теорию, а без неё здесь делать нечего, то понимаем причину ошибки.
- Определение цикла вм и её параметров - начального адреса ленты пикода и таблицы обработчиков. В случае ошибки - смотри выше...
- Декодирование цикла вм и всех обработчиков. ФПУ обработчики пока не реализованы. Любая ошибка 100% локализуется по логам и трейсам.
- Создание промкода. В статусе имеем "VMS: Creating intermediate code... " - всё должно работать и код должен создасться рабочим. За исключением некоторых случаев - хардсвичи двух типов не обрабатываются, если они виртуализованы вм, также возможны ошибки при определении сложных ветвлений внутри функции.
- Декомпиляция промкода. В статусе имеем "VMS: Decompiling intermediate code... ". Сложностей здесь быть не должно, если промкод построен правильно.
- Получение исходного кода. Здесь только в 5-10% случаев можно получить полностью восстановленный код. Все стадии этого процесса есть в логах - иногда небольшая ручная доработка позволяет получить исходный код.

Напоследок я скажу: В результате работы заинтересованы вы, а не я, поэтому бесполезно мне писать только сообщение об ошибке, я их и так все знаю. Каждый ваш файл прогнать под дебагером я не имею возможности, поэтому или разбирайтесь сами или сообщайте действительно полезную инфу - что по такой-то и такой-то причине эта часть анализа не прошла... Успехов...

PS: VMSweeper настоятельно рекомендую запускать под реальной системой, на виртуальных машинах типа VMWare возможны ошибки в работе - причина их неизвестна...

ЗЫЗЫ: Если после поиска всех ссылок вы хотите декомпилировать функции, то нужно выполнить перезапуск Ольки, сохранив предварительно таблицу ссылок в текстовом файле, в противном случае возможны сбои в работе, т.к. под восстановленным импортом может оказаться часть вм!!!

-----
Everything is relative...




Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

Создано: 07 декабря 2010 19:10 · Поправил: Ultras
· Личное сообщение · #24

С разрешения Vamit, публикую небольшой step-by-step tutorial по успешной декомпиляции свипером защищенных ф-ий.

Основная цель: минимизация ошибок на этапе декомпиляции. Прежде чем писать багрепорт автору, внимательно пробегитесь по описанным ниже шагам, может быть вы что-то упустили в очередной раз

Подготовка:
- Перед началом работы обновите dbghelp.dll до самой свежей версии.
- Для целей декомпиляции рекомендуется иметь отдельную сборку OllyDbg с минимальным нужным набором плагинов (например только Phantom и VMSweeper).
- Убедитесь что у вас установлена последняя версия свипера (версию проверяем в окне About плагина).

Итак приступим:
1. Загружаем программу в OllyDbg и добираемся до OEP или останавливаемся близко к ней, главный момент здесь – это данные программы не должны быть еще инициализированы!
2. Запускаем "Analyse all VM references". Указываем диапазон секции кода и VM и жмем ОК.
3. После анализа свипер предложит восстановить импорт: вводим начальный адрес расположения переходников и предположительно конечный.
Если конечный адрес задать неверно то свипер сообщит о невозможности расположения некоторых восстановленных переходников -> надо будет увеличивать конечную границу и повторять анализ.
4. После анализа и восстановления импорта сохраняем лог найденных референсов (Reference VM Window) в файл и перезапускаем программу, чтобы восстановленный импорт не нарушил логику ВМ!
5. Ну вот мы опять на OEP или рядом. По логу референсов находим интересующие нас ф-ии (помечены как Postponed) и начинаем декомпиляцию: для этого желательно брякнуться на нужной ф-ии, либо принудительно установить на нее EIP (New origin here). Жмем F1. Запустился декомпилятор…
6. На перезапуски программы отвечаем OK. Перед продолжением декомпиляции, после перезапусков, важно находиться всегда в одной и той же точке программы, например OEP: брякнулись на OEP, нажали Shift+F1, свипер отработал и предложил перезапуск, мы опять на OEP, опять Shift+F1 и тд.
Если в процессе создания свипером промежуточного кода вылетел эксепшен, то рестартуем программу и продолжаем по Shift+F1.
7. Если всё сделали правильно то доберетесь до конца декомпиляции.

Небольшие замечания по ходу декомпиляции:
- На предложенный свипером реанализ кода – всегда жмем ОК.
- В некоторых случаях может потребоваться указание в качестве начала границы VM - начало секции кода (например в Delphi программах). Для этого сначала рекомендуется провести анализ с узким диапазоном границ VM, сохранить окно референсов, затем расширить границы сегмента VM и повторить анализ. При таком анализе отложенных (Postponed) ф-ий будет много, поэтому работу по декомпиляции ведем по нашему сохраненному вначале окну референсов.
- Перед анализом ВМ ссылок рекомендуется закрыть окошко CPU, а после можно открывать. Это слегка ускорит процесс.


Удачной декомпиляции!

-----
.[ rE! p0w4 ].


| Сообщение посчитали полезным: Vamit

Ранг: 4.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 09 декабря 2010 16:50
· Личное сообщение · #25

Происходит ошибка во время "VMS: Decompiling intermediate code... " последнее,
что появляется в строке статуса перед ошибкой, заканчивается на: a12 final

Содержание ошибки:
Unknown identifier in mov rvm_14, 0x10140000

Число 0x10140000 это адрес AntiDump секции.

При попытке декомпиляции другой функции в этой проге, та же ошибка в том же месте, меняется только номер переменой rvm_XX .

Во 2-й проге, тоже, та же ошибка в том же месте.

Содержание ошибки:
Unknown identifier in mov rvm_04, 0x01390000

В ней также число 0x01390000 это адрес AntiDump секции.

Analyse all VM references. по сегментам вм в обеих прогах делался как вы и рекомендовали для вмпрота, от начала кода до конца файла.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 09 декабря 2010 18:04
· Личное сообщение · #26

заканчивается на: a12 final
То что вы видите a12 - это уже хорошо, а после него идут скорее не ошибки, а недоработки, например, вмпротовский антидампинг не обрабатывается. Постарайтесь по а12 пройтись со смыслом, если там сложные выражения, типа этого - 0015068A: esi = [((shl [__$esp + 2], 0x08)) + rvm_14 + 0xFFFFFFFE | (not {shr [rvm_14 + 0xFFFFFFFE], 0x07}, {shr [rvm_14 + 0xFFFFFFFE], 0x07}) + 0x0001], то это говорит о том, что не прошла девиртуализация, можно подняться в сторону меньших а.. и посмотреть причину этого.
Но уже в таком виде смысл операций можно уловить, если же это представляет сложность, то никто не мешает проверить некоторые действия по промкоду, после окончания декомпиляции eip стоит на переходе в него, F7 и вперед....
И помните, на данном этапе 100% декомпиляции я не обещал

-----
Everything is relative...


| Сообщение посчитали полезным: m0bscene, ClockMan, VodoleY


Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 15 декабря 2010 18:14
· Личное сообщение · #27

Обновленная версия WMSweeper 1.4 beta 1.
Внутри есть подарок...

-----
Everything is relative...


| Сообщение посчитали полезным: m0bscene, _ruzmaz_, Tyrus, Ultras, r_e, daFix, Coderess, Gideon Vi, ClockMan, NIKOLA, SReg, huckfuck, ARCHANGEL, mak, inf1kek


Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 15 декабря 2010 21:21 · Поправил: Bronco
· Личное сообщение · #28

файл 1A18BC9.trc вышел почти на 2 mb, надеюсь что последних строк, из него, хватит:
Code:
  1.  
  2. call  0x0044E923
  3. *** return to VM ->>>>           ;01A35B87
  4.  

//впечатляет кол-во промкода...
add:
декомпилил с vm_oep = 1A18BC9, ПК не разбирал, но свип одну системную функу проскочил (GetVersion)

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 16 декабря 2010 08:32
· Личное сообщение · #29

Bronco
Удивительное рядом, но оно мне не дано...
Попробовал декомпилить с этого адреса - 1A18BC9, трейс получил 350кб, а затем исключение...
Назови свои условия декомпиляции.
Вообще-то это промежуточный вход в ВМ, но не каждый промежуточный вход может успешно декомпилиться, всё зависит от состояния стека..., декомпилить нужно начинать с первоначального входа в ВМ. Эта точка отсутствует в списке Postponed, не знаю, как ты на неё вышел, но это не ОЕП.
Если всё сделано правильно, то ручной работы по файлу практически нет, ну кроме как создать дампинг, пройтись ImpRec'ом, отрезать лишние секции с уже не нужной ВМ...

-----
Everything is relative...





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 16 декабря 2010 09:16
· Личное сообщение · #30

Vamit пишет:
отрезать лишние секции с уже не нужной ВМ...

Code:
  1.  
  2. 004815C4  01A29DD4  Фќў  VmpTest.01A29DD4
  3. 004815C8  01A3846C  l„Ј  VmpTest.01A3846C
  4.  

файлО с косяками, у оригинала те же траблы, хз может из-за отсутсвия дата_кабеля и т.д...
Vamit пишет:
это не ОЕП

версия защиты не старше 2 линейки, ( импорт, инты, jmp_vm_oep), если правильно снять дамп, то он работает и без востановленого импорта.
Vamit пишет:
Назови свои условия декомпиляции.

снимал трейсы с оригинала...)))

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 16 декабря 2010 10:43
· Личное сообщение · #31

Bronco пишет:
файлО с косяками, у оригинала те же траблы, хз может из-за отсутсвия дата_кабеля и т.д...

Не важно, файл работает - основное окно проги появляется, а более ничего и не нужно.
версия защиты не старше 2 линейки
Да, по моему мнению, там вмпрот 1.8
если правильно снять дамп, то он работает и без востановленого импорта.
Это понятно, но файл дан не как распакми, а как пример, на котором можно протестировать работоспособность Свипера и с его помощью 100% восстановить весь съеденный импорт и стартапкод, от которого практически ничего не осталось.
снимал трейсы с оригинала
Я спрашивал про Свипер: твои диапазоны адресов кода и вм. И ещё во-первых, хотелось бы понять причину, почему ты декомпилил не Postponed точку, а какой-то промежуточный вход в ВМ? А во-вторых, почему у нас с тобой разные результаты декомпиляции одного и того же адреса.

-----
Everything is relative...



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 23 . 24 . >>
 eXeL@B —› Протекторы —› Декомпилятор ВМ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати