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

 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
Статус: Участник

Создано: 05 марта 2010 10:24
· Личное сообщение · #2

pavka пишет:
Так там тебе ответили вмпротект

Если действительно вмпротект, то спасибо, а ответ был невразумительный - Больше похоже на вмпрот или что-то типа того

-----
Everything is relative...




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 05 марта 2010 10:41
· Личное сообщение · #3

Bronco пишет:
похоже на вм прот, ближе к стабу ничего не нашёл пока00454150 33C0 XOR EAX,EAX

Далековато проще
01A18BC9 68 94E08463 PUSH 6384E094 <<<<выход из GetVersion
01A18BCE E8 ABCAFFFF CALL VWTester.01A1567E
01A18BD3 9B WAIT

Начало самому состряпать




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

Создано: 05 марта 2010 11:28 · Поправил: Vamit
· Личное сообщение · #4

pavka, Bronco ещё раз спасибо за ответы, больше ничего искать не надо, если потребуется сделаю сам, просто нужно было конкретно определить тип защиты.

Что значит деобфускация исчезла? Если я правильно понял , то это не совсем деобфускация,
а лишь одно из следствий применения виртуальной машины как защиты ?! Или?

Можно сравнить два листинга полного промежуточного кода (DecodeVM.txt) и секцию а00 файла bl1210000.log, т.к. адреса у них одинаковы. Видно, что исчезла часть кода по адресам (0000-0065 без старшего слова), т.к. это блок ENTRY входа в ВМ, т.е. ответ на второй вопрос. Для ориентации по адресам скажу, что адрес в логе показывает на начало логического блока, а команда, которая под ним записана получается в конце этого блока. Смотрим далее - (00С4-00Е4) в логе это push 0x0A, а в коде это 10 инструкций асма, которые и являются обфускацией кода, т.е. ответ на первый вопрос.

Принцип построения деобфускатора? Заточен только под конкретную цель?
Нет, он вообще не под что не заточен и в общем виде его нет, работа по деобфускации кода выполняется в разных частях программы по мере обработки. Два примера уже было разобрано, деобфускация регистров и поглощающая деобфускация в предыдущем ответе.
Здесь же "Производим деобфускацию констант и корректируем стековые смещения. Лог, секция а04." производится только остаточная деобфускация арифметических выражений типа (0x0AB0DD51 + 0x6C1558B5 ^ 0x76A93496) + 0x10FB72D6 - 0x10FB72D6 и получение из них значимых значений.

Заменяем регистры ВМ нативными регистрами. Лог, секция а06. Поподробнее можно пожалуста
Можно и поподробней, это просто, т.к. для данной реализации ВМ мы знаем в каком регистре ВМ лежит какой нативный регистр (ответ по регистрам), то адрес регистра ВМ заменяем именем нативного регистра.
012100B1: [119C004] = [0x004AA378] ==>> 012100B1: esi = [0x004AA378]

Привидите примеры кода из вашей программы защищенной, думаю это ее не скомпрометирует.
Примеры реального кода из реальной программы есть в листингах обзора.

Это были ответы на все вопросы mak

-----
Everything is relative...





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 05 марта 2010 14:12 · Поправил: kioresk
· Личное сообщение · #5

Vamit,

в какие цепочки состояний превратятся следующие куcки кода при анализе?

Code:
  1. xor eax, eax
  2. pushad
  3. mov eax, 12345678
  4. popad

Code:
  1. push edx
  2. mov edx, 00401000
  3. xchg [esp], edx
  4. ret





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

Создано: 05 марта 2010 14:40
· Личное сообщение · #6

kioresk
Для первого кода:
eax - 1 INIT, 2 USE, 3 INIT, 4 INIT
ebx, ecx и т.д. - 2 USE, 4 INIT

Для второго кода:
edx - 1 USE, 2 INIT, 3 USE, 3 INIT

-----
Everything is relative...





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 05 марта 2010 15:15
· Личное сообщение · #7

эх у меня первая поделка была такого типа с инитами и юсами,но обозначения другие, но до конца не довел , по разным причинам , потом полез в другую степь , оптимизирующие компиляторы , потом совместил два вида в одно чтобы сделать один энджин для всего и тоже не до конца. Сэнкс Vamit внес большую ясность. Повод продолжать исследования

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 06 марта 2010 12:07
· Личное сообщение · #8

--> статейка в тему (англ.) <--

-----
127.0.0.1, sweet 127.0.0.1





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

Создано: 06 марта 2010 14:17
· Личное сообщение · #9

OKOB
Да, написано интересно, очень многие решения совпадают с реализованными в ВМС, но, к сожалению автор до исходного асм кода защищенной функции так и не дошел...

-----
Everything is relative...





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 07 марта 2010 21:39 · Поправил: mak
· Личное сообщение · #10



Code:
  1. 0046B6CB  |.  E8 53F8FFFF        CALL vcds_805.0046AF23
  2. 0046B6D0  |.  85C0               TEST EAX,EAX
  3. 0046B6D2  |.  74 07              JE SHORT vcds_805.0046B6DB
  4. 0046B6D4  |.  830D 90026F00 08   OR DWORD PTR DS:[6F0290],8
  5. 0046B6DB  |>  BE 90FE6E00        MOV ESI,vcds_805.006EFE90
  6. 0046B6E0  |.  E8 5BFAFFFF        CALL vcds_805.0046B140


vcds_805 это случаем не указатель на программу 2008 года , по запросам эта программа часто проходила по форуму.


rapidshare.com/files/312624950/VCDS-Release-8050-Installer.rar VCDS-Release-8050-Installer.rar

Будет на чем потестить , если что)

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





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

Создано: 10 марта 2010 09:14
· Личное сообщение · #11

подвержена ли точка входа конкретного типа ВМ и само тело ВМ (до цикла интерпретатора пикода) мутации при создании реализации ВМ?
На этот вопрос, как я понимаю, ответа нет.

OKOB
Можешь выложить пару рабочих файликов, защищенных приведенными в постах 14, 22 (стр.1) ВМ, чтобы доработать декомпилятор под них? Желательно со снятыми упаковщиками...

Декомпилятор никто не опробовал? Даже "подопытного кролика" дали... Плагин выложить просили, а дальше что?

-----
Everything is relative...





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 10 марта 2010 15:02
· Личное сообщение · #12

Vamit пишет:
подвержена ли точка входа конкретного типа ВМ и само тело ВМ (до цикла интерпретатора пикода) мутации при создании реализации ВМ?
На этот вопрос, как я понимаю, ответа нет.


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

подожди немного , не так быстро) Я там нашел то что искал ранее , именно джамповые переходы с вычислениями , времени мало все успевать , по пробе напишу позже.

Vamit пишет:
Плагин выложить просили, а дальше что?

Наверное , некоторые его уже разобрали

Vamit пишет:
OKOB
Можешь выложить пару рабочих файликов, защищенных приведенными в постах 14, 22 (стр.1) ВМ, чтобы доработать декомпилятор под них? Желательно со снятыми упаковщиками...

В личке ...

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





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

Создано: 10 марта 2010 15:29
· Личное сообщение · #13

mak пишет:
Наверное , некоторые его уже разобрали

Ну, ну - это тоже надо уметь, и так быстро не получится, если не ХексРеем делать, а по мне так лучше асм читать, чем то, что он состряпает

-----
Everything is relative...





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

Создано: 12 марта 2010 13:03 · Поправил: Vamit
· Личное сообщение · #14

Решил глянуть на VMProtect изнутри, для возможности оценки доработки под него декомпилятора. Возникло несколько вопросов:
1.
Code:
  1. 00457BB9  |.  6A 01           PUSH 1
  2. 00457BBB  |.  5E              POP ESI
  3. 00457BBC  |.  FF7424 08       PUSH DWORD PTR SS:[ESP+8]
  4. 00457BC0  |.  E8 92FD5D01     CALL VWTester.01A37957
  5. 00457BC5  |.  90              NOP
  6. 00457BC6  |.  85C0            TEST EAX,EAX

Так выглядит съеденный ВМ вызов апишной функции, так?

2.
Code:
  1. 004034C5   .  E8 16670000     CALL VWTester.00409BE0
  2. 004034CA   .- E9 29D16101     JMP VWTester.01A205F8
  3. 004034CF      CC              INT3
  4. 004034D0   >  8D86 B8A40000   LEA EAX,DWORD PTR DS:[ESI+A4B8]
  5. 004034D6   .  33DB            XOR EBX,EBX
  6. 004034D8   .  50              PUSH EAX
  7. 004034D9   .  895C24 30       MOV DWORD PTR SS:[ESP+30],EBX
  8. 004034DD   .  FFD5            CALL EBP
  9. 004034DF   .  899E B0A40000   MOV DWORD PTR DS:[ESI+A4B0],EBX
  10. 004034E5   .  899E B4A40000   MOV DWORD PTR DS:[ESI+A4B4],EBX
  11. 004034EB   .  8D86 D8640100   LEA EAX,DWORD PTR DS:[ESI+164D8]
  12. 004034F1   .  50              PUSH EAX
  13. 004034F2   .  FFD5            CALL EBP
  14. 004034F4   .  8DBE D8440100   LEA EDI,DWORD PTR DS:[ESI+144D8]

А так выглядит съеденный ВМ кусок тела функции, так? Если это так, тогда следующий вопрос, вместо мусора в съеденной области мы наблюдаем вполне рабочий код, это муляж или действительно вставленный откуда-то рабочий код?

3.
Code:
  1. 0044FCA8    - E9 92755C01     JMP VWTester.01A1723F          ; OEP
  2. 0044FCAD      CC              INT3
  3. 0044FCAE      CC              INT3
  4. 0044FCAF      CC              INT3
  5. 0044FCB0      CC              INT3

Это съеденный ВМ стаб. Через OEP исполнение проги не проходит, бряки не срабатывают (а может защита?). Вопросы:
- действительно ли, если идти по jmp, мы выполним весь стаб?
- если через OEP исполнение не проходит, то как найти в ВМ точку эквивалентную этой?

-----
Everything is relative...





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 12 марта 2010 13:50
· Личное сообщение · #15

Vamit пишет:
00457BC0  |.  E8 92FD5D01     CALL VWTester.01A37957
00457BC5  |.  90              NOP

Как правило в старых версиях импорт всегда наместе просто айпи покриптованы и зайдя по адресу
VWTester.01A37957 ищем
на подобии такой комманды
MOV EAX,[4281A4]
эта загружается айпи с таблички просто она покриптована,теперь просто ищем комманды изменяющии регистр еах и получаем типа таких комманд везде разные
ROR EAX,0B
DEC EAX
ROR EAX,1F
DEC EAX
в еах должен раскриптоватся адрес айпи

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

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

ClockMan пишет:
Как правило в старых версиях импорт всегда наместе

Вот кусок импорта, как видно на своем месте мало что есть
Code:
  1. 0047C210  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  2. 0047C220  CC CC CC CC 88 9C 80 7C CC CC CC CC 46 BE 80 7C  ММММ€њЂ|ММММFѕЂ|
  3. 0047C230  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  4. 0047C240  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  5. 0047C250  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  6. 0047C260  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  7. 0047C270  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ
  8. 0047C280  CC CC CC CC CC CC CC CC A9 FF 80 7C CC CC CC CC  ММММММММ©яЂ|ММММ
  9. 0047C290  CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC  ММММММММММММММММ

ClockMan пишет:
эта загружается айпи с таблички просто она покриптована,теперь просто ищем комманды изменяющии регистр еах и получаем типа таких комманд везде разные

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

-----
Everything is relative...





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 12 марта 2010 14:42
· Личное сообщение · #17

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

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




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

Создано: 12 марта 2010 14:55
· Личное сообщение · #18

kioresk пишет:
А в чем проблема, точки входа такие же как и у других протекторов

В общем да, это так, визуально все точки явно определяются, кроме ОЕПа, а в частностях могут быть вопросы. Вопрос 2 про мусор очень важен, т.к. в функции должно быть место для восстановленного кода, а если ВМ заняла это место под свои нужды, то перетереть его мы не можем.

-----
Everything is relative...





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 12 марта 2010 15:06
· Личное сообщение · #19

004034CA .- E9 29D16101 JMP VWTester.01A205F8
004034CF CC INT3


Должна быть комманда
mov ebp,dword[name_aipi] длина комманды 6 байтов

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 12 марта 2010 15:09 · Поправил: kioresk
· Личное сообщение · #20

Так выглядит съеденный ВМ вызов апишной функции, так?

Так. Идет прыжок на враппер, который затем прыгает по адресу API функции, который ранее рассчитывается вмпротом.

А так выглядит съеденный ВМ кусок тела функции, так? Если это так, тогда следующий вопрос, вместо мусора в съеденной области мы наблюдаем вполне рабочий код, это муляж или действительно вставленный откуда-то рабочий код?

Так. Только в твоем примере защищен маленький участок кода (длинной в 6 байт), поэтому остальной код не тронут.

Добавлено

А, так у тебя там просто импорт защищен.

Вопрос 2 про мусор очень важен, т.к. в функции должно быть место для восстановленного кода, а если ВМ заняла это место под свои нужды, то перетереть его мы не можем.

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




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

Создано: 12 марта 2010 15:48 · Поправил: Vamit
· Личное сообщение · #21

kioresk пишет:
Только в твоем примере защищен маленький участок кода (длинной в 6 байт), поэтому остальной код не тронут.

Нет, так быть не может по 2 причинам:
- во-первых, вм вешается на исходники с добавлением кода начала и конца защищаемой области, а это никак не 6 байт, во-вторых, практически невозможно найти строку исходного кода, которая скомпилируется в 6 байт даже с оптимизацией, в-третьих, какой смысл защищать одну строку исходного кода. Следовательно, места под код должно быть всегда больше, чем он сам занимал первоначально.
- в данном примере ebp не инициирован, следовательно call ebp не имеет смысла в прямом выполнении, вот начало функции
Code:
  1. 004034A0   $  6A FF         PUSH -1
  2. 004034A2   .  68 F5784700   PUSH VWTester.004778F5                   ; SE handler installation
  3. 004034A7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
  4. 004034AD   .  50            PUSH EAX
  5. 004034AE   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
  6. 004034B5   .  83EC 14       SUB ESP,14
  7. 004034B8   .  53            PUSH EBX
  8. 004034B9   .  55            PUSH EBP
  9. 004034BA   .  56            PUSH ESI
  10. 004034BB   .  8BF1          MOV ESI,ECX
  11. 004034BD   .  57            PUSH EDI
  12. 004034BE   .  897424 10     MOV DWORD PTR SS:[ESP+10],ESI
  13. 004034C2   .  8D4E 04       LEA ECX,DWORD PTR DS:[ESI+4]
  14. 004034C5   .  E8 16670000   CALL VWTester.00409BE0

а значит это или мусор или ??? Возможно и разновидность апишного вызова...
Отредактировано: С этим разобрался - mov ebp, апи функция

в любом случае восстановить код на его родное место можно только после того как будут обработаны все защищенные участки.
Это не так. Сейчас декомпилятор восстанавливает по одной функции и в проге одновременно работают как ВМ, так и восстановленный код, если конечно, вместо съеденного куска находится мусор или муляж. Если же здесь лежит рабочий код, то это сложнее - надо менять алгоритм.

-----
Everything is relative...




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 12 марта 2010 18:26
· Личное сообщение · #22

Vamit пишет:
Это не так.

Защита импорта это не вм ее можешь править сколько влезет




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

Создано: 13 марта 2010 20:13 · Поправил: Bronco
· Личное сообщение · #23

ClockMan пишет:
Должна быть комманда

Code:
  1. 0012FFB8  01A17244  DrЎ  VWTester.01A17244 <<!!!!!
  2. 0012FFBC  001CD017  Р.
  3. 0012FFC0  0012FFF0  ря.
  4. 0012FFC4  7C816D4F  OmЃ|  RETURN to kernel32.7C816D4F
  5. 0012FFC8  7C910738  8‘|  ntdll.7C910738
  6. 0012FFCC  FFFFFFFF  яяяя
  7. 0012FFD0  7FFD6000  .`э
  8. 0012FFD4  8054A6ED  н¦TЂ
  9. 0012FFD8  0012FFC8  Ия.
  10. 0012FFDC  89B45540  @Uґ‰
  11. 0012FFE0  FFFFFFFF  яяяя  End of SEH chain
  12. 0012FFE4  7C8399F3  у™ѓ|  SE handler
  13. 0012FFE8  7C816D58  XmЃ|  kernel32.7C816D58
  14. 0012FFEC  00000000  ....
  15. 0012FFF0  00000000  ....
  16. 0012FFF4  00000000  ....
  17. 0012FFF8  01AAD8D6  ЦШЄ  VWTester.<ModuleEntryPoint>
  18. 0012FFFC  00000000  ....
  19.  

::
Code:
  1.  
  2.     01A1723F      68 94E18740                                  PUSH 4087E194
  3. (!)01A17244      E8 2FE3FFFF                                  CALL 01A15578
  4.  


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





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 14 марта 2010 05:19 · Поправил: ClockMan
· Личное сообщение · #24

Bronco???
/*4034CA*/ JMP 01A205F8===========>заходим в начло украденной функции

/*1A24C0A*/ MOV EAX,[1A2A856]======>EAX 80CC585B
/*1A2F033*/ ADD EAX,AFBF00BF=======>начало раскриптовки
/*1A2F03F*/ ROL EAX,6
/*1A28D4F*/ DEC EAX
/*1A28D53*/ NOT EAX
/*1A28D5F*/ ADD EAX,5F508C6B
/*1A28D65*/ ROR EAX,4
/*1A28D77*/ NOT EAX
/*1A28D7B*/ SUB EAX,88B8FB44
/*1A362BD*/ NOT EAX================>EAX 7C809FA1 kernel32.InitializeCriticalSection

/*1A2A8DB*/ PUSH DWORD PTR [ESP+44]
/*1A2A8DF*/ RETN 48=================>выходим

/*1A24C1A*/ NOT BP==================>заходим )


/*1A24C1D*/ MOV EBP,EAX=============>заносим значение из eax в ebp

/*1A24C2E*/ JMP 004034D0============>прыгаем обратно в область кода

/*4034D0*/ LEA EAX,[ESI+A4B8]=======>вышли

Поэтому исследуя эти данные мы получаем что украденная фуекция есть ничто иное как

mov ebp,dword[1A2A856] только ненадо её воспринемать конкретно )

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 14 марта 2010 10:56
· Личное сообщение · #25

ClockMan, толька ща обратил внимание на адреса...
// попутал с адресом стартового кода.

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





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 14 марта 2010 12:48
· Личное сообщение · #26

Я в своё время писал простенкий трассировщик, который прогонял все прыжки, ведушие в
какой-то промежуток памяти и генерил новую таблицу импорта. Только возникла
проблема - приходилось фильтровать IAT и просто завиртуаленный код.
Вообщем, защита импорта не самая сильная сторона прота, по крайней мере,
версия очень похожа на ту, из которой ClockMan привёл код

-----
Research For Food





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 14 марта 2010 13:14
· Личное сообщение · #27

Ещё инфы подкину код раскриптовки айпи всегда одниннаковый... в новых версиях прота защита построена подругому.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 14 марта 2010 17:28
· Личное сообщение · #28

Исправил пару ошибок и немного обновил декомпилятор, добавил функцию поиска всех вхождений в любую ВМ, в том числе и неявных.

6543_14.03.2010_CRACKLAB.rU.tgz - VMSweeper1_1beta.rar

-----
Everything is relative...





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

Создано: 14 марта 2010 21:38
· Личное сообщение · #29

Какие команды вм для плуга благоприятны ???
пока наблюдаю месседж " невалидная точка входа в ВМ "

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





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

Создано: 14 марта 2010 22:07 · Поправил: Vamit
· Личное сообщение · #30

Bronco
Здесь (во вложении) (помечены !!!!!) точно сказано какие критерии входа в ВМ пока обязательны для декомпилятора. Если критерии другие (разновидность или тип ВМ), то получим данное сообщение.

-----
Everything is relative...





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

Создано: 18 марта 2010 02:15
· Личное сообщение · #31

Vamit пишет:
критерии входа в ВМ

Ну чисто вход в вм как у старика до 5 версии точно,
//как сейчас не знаю.

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



<< . 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 » Выход » ЛС
   Для печати Для печати