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

 eXeL@B —› Протекторы —› cmp в аспровой ВМ
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 06 апреля 2005 20:17
· Личное сообщение · #1

Щас скрипт пишу для восстановления комманд, выполняемых на ВМ. С call, jmp и условными jmp разобрался (они восстанавливаюцца правильно), а вот с cmp косяк. Как определить размер сравниваемой области (т.е. будет cmp byte, word или dword ptr [XXX]? К тому же опкодов у всех подобных команд будет слишком много, чтобы всё в скрипте вручную прописывать Можно ли это автоматизировать как-то?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 06 апреля 2005 21:09
· Личное сообщение · #2

sanniassin пишет:
Как определить размер сравниваемой области (т.е. будет cmp byte, word или dword ptr [XXX]?

в аспровой процедуре эмуляции cmp это есть, копай ;)

sanniassin пишет:
К тому же опкодов у всех подобных команд будет слишком много, чтобы всё в скрипте вручную прописывать

угу, поэтому я написал свою функцию эмуляции cmp (чтобы она работала аналогично аспровой), при работе скрипт записывает необходимые для работы функции параметры (берет из аспра в момент когда он их считает/находит) в дамп и добавляет эту мою функцию эмуляции. Тоесть было call aspr_vm стало jmp to call My_cmp_emul, и прям под этим call скрипт располагает параметры.



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

Создано: 07 апреля 2005 03:52
· Личное сообщение · #3

Я ламер, поэтому с My_cmp_emul не разобрался (да и лень было). Но восстанавление cmp + jcc вроде работает правильно Там для word-ов правда не писал поддержку, ну да они и встречаются редко Для сравнения вида cmp dword/byte ptr [123456], XXXXXXXX нужно было прописать два опкода, а для сравнений cmp dword/byte [eax], XXXXXXXXX опкоды генерятся на основе данных о типе джампа ;)



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

Создано: 07 апреля 2005 13:13 · Поправил: sanniassin
· Личное сообщение · #4

Почти доделал скрипт. Терь все команды восстанавливаюцца (кроме cmp ... ptr [esp] - лень, ибо нафиг оно нужно). Но я не знаю, как выглядит эмуляция cmp word ptr [xxx]... Дайте кто-нить прогу с ВМ и эмуляцией cmp word ptr [xxx]. И ещё, я не совсем понял, когда при определении размера сравниваемой области (byte, word, dword) ф-ция (по моему такая)
call edx
and eax, 7F
cmp eax, 4
ja somewhere

call edx возвращает 4, то это что означает? вроде похоже на cmp dword ptr...



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

Создано: 08 апреля 2005 01:07 · Поправил: sanniassin
· Личное сообщение · #5

Поетстируйте работу с ВМ. Восстановление импорта пока реализовано криво ;)



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

Создано: 08 апреля 2005 01:09
· Личное сообщение · #6

Сам скрипт.

c939_aspr_1.32_2.0_OEP_VM_remover.zip



Ранг: 12.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2005 01:53
· Личное сообщение · #7

sanniassin пишет:
Сам скрипт.

Сигнатуры какие-то в скрипте странные у меня таких нет - искал вручную.
И скрипт не пашет наверно нужно его под каждую прогу подгонять

83C404 add esp,004
010424 add [esp],eax
C3 retn

5B pop ebx
5E pop esi
5F pop edi
5D pop ebp

8038E8 cmp b,[eax],0E8
7407 je 00000414D
40 inc eax
3BC3 cmp eax,ebx
72F6 jb 000004141



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

Создано: 08 апреля 2005 12:35
· Личное сообщение · #8

Хм... а на чём проверял? Мож там аспр старый (1.32 beta, 2.0 beta и младше)?



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

Создано: 08 апреля 2005 16:41
· Личное сообщение · #9

Уфф... наконец-то распаковал полностью аспр со всеми фичами (сам ASProtect 2.1 build 02.19 Release). Патчинг, имхо, проще ;)



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 09 апреля 2005 08:31
· Личное сообщение · #10

sanniassin пишет:
распаковал полностью аспр со всеми фичами (сам ASProtect 2.1 build 02.19 Release)

Вот это сила, круто!



Ранг: 28.0 (посетитель)
Активность: 0.020
Статус: Участник
anarchist

Создано: 09 апреля 2005 13:03
· Личное сообщение · #11

Молодец. А для меня этот ВМ все еще дремучий лес




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 09 апреля 2005 16:59
· Личное сообщение · #12

vins пишет:
Молодец. А для меня этот ВМ все еще дремучий лес

Надо разбомбить будет эту штуку. Я посмотрел топ не реверсинг.нет. Там не очень хорошие отзывы о нём=>надо попробовать Если бы там была настоящая VM, тогда бы можно было забыть А там лажа




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 09 апреля 2005 20:28
· Личное сообщение · #13

sanniassin пишет:
Сам скрипт.

хмм... таже ошибка в определение типа некоторых jcc какая и у меня раньше была ;)
и сам принцип работы скрипта мне что-то знакомое сильно напоминает =))




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 09 апреля 2005 21:21
· Личное сообщение · #14

Mario555 пишет:
таже ошибка

А у меня вообще вылазит, что типа бряк по адресу 000000Е нельзя поставить, удаляем Не катит скрипт Может дашь прогу, на которой поэксперементировать?



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

Создано: 10 апреля 2005 01:16
· Личное сообщение · #15

Mario555 пишет:
таже ошибка в определение типа некоторых jcc какая и у меня раньше была

А что за ошибка?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 10 апреля 2005 16:36
· Личное сообщение · #16

sanniassin пишет:
А что за ошибка?

говорю же

Mario555 пишет:
ошибка в определение типа некоторых jcc

тоесть не все аспровые типы jcc соответствуют опкодам этих jcc, см. эмуляцию каждой jcc ;)




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 10 апреля 2005 16:50
· Личное сообщение · #17

sanniassin
Может прогу дашь, которую этот скрипт анпакнуть сможет.



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

Создано: 11 апреля 2005 00:41
· Личное сообщение · #18

Удаляет ВМ например в ImageDupeless h__p://www.imagedupeless.com



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

Создано: 11 апреля 2005 00:46
· Личное сообщение · #19

Пофиксил пару багов (не связанных с jcc (т.к. ВМ разбирал не я ;))



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

Создано: 11 апреля 2005 00:57
· Личное сообщение · #20

Аттач

aa86_aspr_1.32_2.0_OEP_VM_remover.zip



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

Создано: 11 апреля 2005 01:05
· Личное сообщение · #21

Mario555
Или ты имеешь ввиду:
06 - JBE=JPE
0A - JPE=JBE
?




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 11 апреля 2005 10:52
· Личное сообщение · #22

sanniassin пишет:
Удаляет ВМ например в ImageDupeless h__p://www.imagedupeless.com

Но скрипт до конца не дорабатывает, прога падает На какой проге скрипт доробатывает полностью?



Ранг: 12.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 11 апреля 2005 10:58
· Личное сообщение · #23

sanniassin пишет:
Удаляет ВМ например в ImageDupeless h__p://www.imagedupeless.com

Зарелись сам aspr - если всё так действительно просто таким образом ведь можно каждую версию релизить и 1.x и 2.x ..




Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 11 апреля 2005 10:59
· Личное сообщение · #24

У меня на LearnWords (http://www.learnwords.com/rus/download/learnwords.exe) дорабатывает полностью вроде (VM removed пишет). Там ASProtect 2.0x.
Только вот думаю теперь что это мне дает?

-----
Get busy living or get busy dying ©





Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 11 апреля 2005 11:23
· Личное сообщение · #25

evix пишет:
Зарелись сам aspr - если всё так действительно просто таким образом ведь можно каждую версию релизить и 1.x и 2.x ..

Ага, а как куски кода расприптовывать? Не подумал? Без ключа не анпакнуть.



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

Создано: 11 апреля 2005 11:45
· Личное сообщение · #26

Bit-hack пишет:
Но скрипт до конца не дорабатывает, прога падает На какой проге скрипт доробатывает полностью?

Странно, у меня не падает. Только сёдня ночью скриптом этим (правда я там ещё один баг пофиксил, но это не важно, т.к. из-за него падать не должно (тока джампы неправильно генерятся)) распаковывал Easy Autorun Creator. По крайней мере до VM removed должно доходить. Какая у тебя ось?
evix пишет:
Зарелись сам aspr

Не имею правов таких ;)
Bit-hack пишет:
Без ключа не анпакнуть

Во-первых анпакнуть то можно, а вот юзать нормально нельзя. А во-вторых, кто сказал, что у меня нет ключа




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 11 апреля 2005 11:56
· Личное сообщение · #27

sanniassin пишет:
Какая у тебя ось?

XP. До VM removed доходит, но хочется дальше И где байты, которые востановли скрипт? Почему постоянна вылазит левая мессага?
sanniassin пишет:
А во-вторых, кто сказал, что у меня нет ключа


sanniassin пишет:
Не имею правов таких ;)

А чё так:_?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 11 апреля 2005 18:27
· Личное сообщение · #28

sanniassin пишет:
Или ты имеешь ввиду:
06 - JBE=JPE
0A - JPE=JBE

да, и ещё 07 <--> 0B



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

Создано: 12 апреля 2005 00:16 · Поправил: sanniassin
· Личное сообщение · #29

Вобщем забил я пока на восстановление ВМ, т.к. проще её скопировать Лень разбирацца в эмуляции cmp типа cmp регистр, регистр



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

Создано: 12 апреля 2005 00:25
· Личное сообщение · #30

Bit-hack пишет:
А чё так

Вот так случилось, слово пришлось дать, что никому не дам аспр...


. 1 . 2 . >>
 eXeL@B —› Протекторы —› cmp в аспровой ВМ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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