Русский / Russian English / Английский

Сейчас на форуме: Veliant, CompCrasher, _MBK_, rthax
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Протекторы —› Анализ ASProtect
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
Посл.ответ Сообщение

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 28 марта 2008 15:30 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #1

Я выложил свой первый туториал по анализу ASProtect v2.4 build 12.20 (Анализ подпрограммы эмуляции инструкций.rar http://dump.ru/files/o/o489862518/ ). В этом туториале я подробно описал процесс восстановления эмулированных инструкций типа:
Code:
  1. PUSH 0
  2. PUSH 0CC5850
  3. PUSH 0DB180C
  4. CALL 00CEB814


Полный цикл статей по распаковке ASProtect (Актуальная версия 25 декабря 2009):
ASProtect_Unpacking_Tutorial_2009-12-25.rar http://rapidshare.com/files/325720799/ASProtect_Unpacking_Tutorial_2009-12-25.rar 7,9 МБ
Программы, рассматриваемые в статьях:
ASProtect_Unpacking_Apps_2009-12-25.rar http://rapidshare.com/files/325718084/ASProtect_Unpacking_Apps_2009-12-25.rar 22,2 МБ

Буду благодарен за критику, замечания, пожелания и отзывы.

Скрипты:
Текущая рекомендуемая версия ODBGScript [1.78.3]:
{ Атач доступен только для участников форума } - ODbgScript.dll

Последний текущий комплект скриптов [от 19 февраля 2011]:
{ Атач доступен только для участников форума } - Скрипты для распаковки Asprotect от 19 февраля 2011.rar

Статьи по частям:
Актуальная версия статей [Последняя - 25.11.2010]:
Выпуск 2
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 1
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 2
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 3
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 4
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 5
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 5 (продолжение)
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 6
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 7
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 8
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 9
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 10
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 11
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 12
{ Атач доступен только для участников форума } - Распаковка ASProtect - Часть 13
{ Атач доступен только для участников форума } - Распаковка Asprotect - Часть 14
{ Атач доступен только для участников форума } - Распаковка Asprotect - Части 15 и 16

DriEm конвертировал мой цикл статей в формате PDF, который можно скачать по ссылке --> Link <--

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

Создано: 16 сентября 2008 21:30 · Поправил: Konstantin New!
Цитата · Личное сообщение · #2

borov
[q]страйпер вылетает с ошибкой, и скрипт VolX'a тоже [/q]
Cкрипт VolX'a распаковывает сабж, если его подправить.
Нужно заменить строку
Code:
  1. asm tmp1, "mov edi, [edi]

на
Code:
  1. mov [tmp1], #8b3f#

Вот исправленный скрипт:

{ Атач доступен только для участников форума } - ASProtect 1.3x - 2.xx Unpacker v1.14AE_1.rar
P.S. В сабже помимо OEP сперто еще кусков 10 кода.


Ранг: 118.1 (ветеран)
Статус: Участник

Создано: 17 сентября 2008 00:44 New!
Цитата · Личное сообщение · #3

Konstantin У тебя самого дамп после потом работает? У мну нет .


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 17 сентября 2008 01:06 New!
Цитата · Личное сообщение · #4

Loco, а потом нужно ИмпРеком импорт востановить и все, данный для ИмпРека смотри в окне Log Windows в ольке, и все

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

Создано: 17 сентября 2008 01:47 · Поправил: Konstantin New!
Цитата · Личное сообщение · #5

Loco
Так он же и не будет работать, я же написал там около 10 участков спертого кода, их нужно восстанавливать - чистить от мусора, может они еще и с VM(не смотрел). Этого скрипт от VolX-а не делает (по крайней мере паблик версия).


Ранг: 118.1 (ветеран)
Статус: Участник

Создано: 17 сентября 2008 08:03 New!
Цитата · Личное сообщение · #6

Konstantin пишет:
нужно восстанавливать - чистить от мусора

Чем можно почистить? Я просто биндером правил в надежде на рапотоспособность файла, но нет не пашет.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 17 сентября 2008 09:40 · Поправил: borov New!
Цитата · Личное сообщение · #7

у мнея все отлично заработало с исправленым скриптом, сначала скриптом распаковал,
потом ИмпРеком востановил импотр, запускаю работает, к томуже версия стала зарегистрированой,
только почимуто на VolX'a, открываю програму в хекс-редакторе ищу стоку VolX и заменяю на BoRoV,
вуаля и все зашибись

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

Создано: 17 сентября 2008 10:42 · Поправил: Konstantin New!
Цитата · Личное сообщение · #8

Я просто биндером правил в надежде на рапотоспособность файла, но нет не пашет.

Чтобы понять, что за код тебе восстанавливать, посмотри на прыжки по этим адресам (как это делать - читай статьи):
Code:
  1. /*403C0C*/  JMP 00FC087E
  2. /*403C66*/  JMP 00FC0A34
  3. /*403CCC*/  JMP 00FC0A39
  4. /*403D54*/  JMP 00FC0F37
  5. /*403DA4*/  JMP 00FC0439
  6. /*403DD8*/  JMP 00FC0BF5
  7. /*403E50*/  JMP 00FC041E
  8. /*403E57*/  JMP 00FC0425
  9. /*408110*/  JMP 00FC0A94
  10. /*40815C*/  JMP 00FC0EEC

Т.е. это прыжки из основного кода в виртуальную память, выделенную аспром. Соответственно в дампе со снятым аспром ведут в никуда. Скрипт правит эти прыжки в область после секции .adata которой реально не существует, но если дампить Pedumper-oм с снятой опцией paste header from disk, то эта секция с названием aspr нарисуется. Правда в дампе она будет пустая.

Вручную восстанавливать код гиморно(там его довольно много, да и делать обезьянью работу не хоцо) - на паблике инструментов нет. Воспользуйся советом Maximus-а:
Отправь на сервис распаковки, тебе распакуют эту версию.

P.S. borov а если подробнее?


Ранг: 1125.9 (!!!!)
Статус: Участник

Создано: 17 сентября 2008 11:45 New!
Цитата · Личное сообщение · #9

Konstantin пишет:
по крайней мере паблик версия


из хистори:

1.2
Add the ability to fix VM code.


Однако 1,2 на паблике действительно небыло


Ранг: 247.7 (наставник)
Статус: Участник
Халявщик

Создано: 17 сентября 2008 12:32 New!
Цитата · Личное сообщение · #10

Konstantin
Почему исправлять надо именно на
mov [tmp1], #8b3f#

Это только для этой проги/версии или ошибка в скрипте?

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

Создано: 17 сентября 2008 12:57 · Поправил: Konstantin New!
Цитата · Личное сообщение · #11

depler
У меня нет версии ODbgScript (пользуюсь ODbgScript 1.64.3.VC6) которая понимает команды типа asm tmp1, "mov edi, [edi]".
#8b3f# - это ОП код команды mov edi, [edi]

В данном скрипте полно команд типа asm ***, "***"(я подправил только под эту прожку), поэтому хотелось бы знать версию ODbgScript которая понимает эти команды.

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 17 сентября 2008 13:59 New!
Цитата · Личное сообщение · #12

Konstantin пишет:
поэтому хотелось бы знать версию ODbgScript которая понимает эти команды.

Ищи 1.65 китайская версия там пофикщены asm


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 17 сентября 2008 14:13 New!
Цитата · Личное сообщение · #13

вот оно че, у меня тоже ODbgScript 1.64.3, просто у меня он в сборке DeFixed Edition, потому и заменить его нельзя


Ранг: 756.3 (! !)
Статус: Участник
Student

Создано: 17 сентября 2008 15:47 New!
Цитата · Личное сообщение · #14

pavka ты же сам писал
pavka пишет:
Китайски бажный какой то


тут тема: --> Link <--


Ранг: 1125.9 (!!!!)
Статус: Участник

Создано: 18 сентября 2008 02:35 New!
Цитата · Личное сообщение · #15

borov пишет:
потому и заменить его нельзя


а посмотреть, на что в плагине заменены магические слова: OLLYDBG.EXE и _ODBG_ религия не позволяет?

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 18 сентября 2008 03:35 New!
Цитата · Личное сообщение · #16

Isaev пишет:
ты же сам писал

Есть версия пофикшеная


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 18 сентября 2008 07:30 · Поправил: borov New!
Цитата · Личное сообщение · #17

Gideon Vi, исправил, не работает

Ранг: 64.4 (постоянный)
Статус: Участник

Создано: 18 сентября 2008 15:24 New!
Цитата · Личное сообщение · #18

pavka пишет:
Ищи 1.65 китайская версия там пофикщены asm

А без него и не работал скрипт версии 1.14


Ранг: 247.7 (наставник)
Статус: Участник
Халявщик

Создано: 18 сентября 2008 15:29 New!
Цитата · Личное сообщение · #19

pavka
ну дык выложи пофикшенную

Ранг: 64.4 (постоянный)
Статус: Участник

Создано: 18 сентября 2008 15:34 New!
Цитата · Личное сообщение · #20

depler пишет:
ну дык выложи пофикшенную

Ее же где угодно можно скачать


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 18 сентября 2008 18:03 New!
Цитата · Личное сообщение · #21

У меня 1.65.4 не понимает данную команду,
pavka, выложи тот что понимает.

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 18 сентября 2008 18:15 New!
Цитата · Личное сообщение · #22

Yesterday and today I've found some issues regarding ASK and ASM opcodes, when used in scripts..

QUOTE
Found bug here:

QUOTE
bool OllyLang:: DoASK(string args)
{
string ops[1];
string title;

if(!CreateOperands(args, ops, 1))
return false;

if(GetSTROpValue(ops[0], title))
{
if (wndProg.hw!=NULL)
InvalidateRect(wndProg.hw, NULL, FALSE);

HINSTANCE hi = (HINSTANCE)GetModuleHandle("ODbgScript.dll");
HWND hw = 0; //not modal but dialog need to be closed on plugin close.
char* returned_buffer = (char*)DialogBoxParam(hi, MAKEINTRESOURCE(IDD_INPUT), hw, (DLGPROC) InputDialogProc, (LPARAM)title.c_str());
if ((BYTE)returned_buffer != NULL)
{
string returned = returned_buffer;
delete[256] returned_buffer;

if(is_hex(returned))
{
variables["$RESULT"] = strtoul(returned.c_str(), 0, 16);
variables["$RESULT_1"] = (int) (returned.length() / 2); //size
}
else
{
UnquoteString(returned, '"', '"'); // To Accept input like "FFF" (forces string)
variables["$RESULT"] = returned.c_str();
variables["$RESULT_1"] = (int) returned.length();
}
}
else
{
variables["$RESULT"] = 0; //added this!!
Pause();
}
return true;
}
return false;
}

By doing that, if you leave the dialog box empty or press Cancel, it makes $RESULT 0 instead of empty as it used to..

Example:
ask "Enter text:" //here, when you press Cancel or don't type anything in, $RESULT = EMPTY..
cmp $RESULT,0
je #cancel
mov bla,$RESULT

After fix:



Have fun..

QUOTE
Found another bug with ODbgScript.. When your variable holds addresses like B239E0, ODbgScript will fail to ASM them. Example:

eval "mov dword ptr [{GPA}],{cave}"
asm cave,$RESULT

For this case, with:

Command= eval "mov dword ptr [{GPA}],{cave}"
Result="mov dword ptr [A71074],B23A39"

Because of not putting a 0 in front of A71074, ODbgScript will error -> "unknown command".

Fixed here, in OllyLang.cpp:

QUOTE
else if(variables[op].vt == DW)
{
char buffer[12] = {0};
if (hex8forExec)
//For Assemble Command (EXEC/ENDE) ie "0DEADBEEF"
sprintf(buffer, "%09X", variables[op].dw);
else
sprintf(buffer, "%08X", variables[op].dw); //changed from %X to %08X
value = buffer;
goto values_ok;
}

Now it should work fine
CODE
Script Execution, item 66
Line=66
Command= asm cave,$RESULT
Result=A
EIP= i
Values <---="mov dword ptr [00A71074],00B23A39" B23A01

Good luck
forums.accessroot.com/index.php?act=attach&type=post&id=3680


Ранг: 1125.9 (!!!!)
Статус: Участник

Создано: 19 сентября 2008 03:17 New!
Цитата · Личное сообщение · #23

borov пишет:
исправил, не работает


значит ещё что-то нахимичили. Нафига тебе сборки? Поставь advancedolly для фикса багов и фантома для хайда. Будешь по крайней мере знать, что и для чего сделал. Ну и с плагами проблем иметь не будешь


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 19 сентября 2008 11:54 New!
Цитата · Личное сообщение · #24

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

Ранг: 329.6 (мудрец)
Статус: Участник

Создано: 23 октября 2008 06:49 New!
Цитата · Личное сообщение · #25

На обменнике www.sendspace.com/file/txr13k я выложил полностью рабочий файл AsProtect.exe для протектора AsProtect v2.4 build 12.20. В нем полностью восстановлены все эмулированные инструкции, снята проверка целостности кода (CRC), удалены все ненужные секции файла, и т.д. Если имеются какие-либо ошибки, пожалуйста, сообщите мне об этом.


Ранг: 247.7 (наставник)
Статус: Участник
Халявщик

Создано: 23 октября 2008 06:58 New!
Цитата · Личное сообщение · #26

Какая версия новее 02.26 или 12.20?


Ранг: 118.1 (ветеран)
Статус: Участник

Создано: 23 октября 2008 09:25 · Поправил: Loco New!
Цитата · Личное сообщение · #27

depler 02.26


Ранг: 500.5 (!)
Статус: Участник

Создано: 23 октября 2008 09:49 New!
Цитата · Личное сообщение · #28

Loco
если не знаешь, то незачем писать.

depler
новее 02.26, это релиз от 26 февраля 2008 года, а 12.20 это релиз 20 декабря 2007 года, после 02.26 еще официально был 04.01, но на паблике его нет.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 23 октября 2008 10:27 New!
Цитата · Личное сообщение · #29

если его резили тогда где он?

Ранг: 116.5 (ветеран)
Статус: Участник

Создано: 23 октября 2008 10:33 New!
Цитата · Личное сообщение · #30

Пжлста, переложите кто-нить тутор куда-нить на другой обменник (хотя б на рапиду)!


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 23 октября 2008 12:32 New!
Цитата · Личное сообщение · #31

Smon пишет:
новее 02.26, это релиз от 26 февраля 2008 года,

Тогда уж сразу надо сказать что из за халатности разрабов аспра, которая началась в 2005 году еще точную версию файла можно узнать только на их форуме. Версии идут так:

ASProtect 2.4 build 12.20
ASProtect 2.41 build 02.26
ASProtect 2.41 build 04.01

тогда и вопросов нет какая старше. А вот прогеры на гуй как и на историю версий забили еще в 2005г.
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect

Видеокурс ВЗЛОМ