| Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) | 
| eXeL@B —› Основной форум —› Распаковка фильтра для Фотошопа | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 11 сентября 2005 14:19  · Личное сообщение · #1 Приветствую всех обитателей форума. Я новичок в этом деле и меня интересует вот какой вопрос. Попался мне один фильтр для Фотошопа Akvis Coloriage. Фильтр предназначен для раскраски черно-белых фото. При запуске появляется наг скрин говорящий что им можно пользоваться 10 дней. Натравил на него Peid и узнал что он упакован ASPack 2.12 -> Alexey Solodovnikov. Обычные программы упакованные аспаком я могу распаковать, но как быть с этим ? Подскажите пожайлуста как мне его распаковать. ![]()  | 
| 
 | 
Создано: 11 сентября 2005 14:38  · Личное сообщение · #2  | 
| 
 | 
Создано: 11 сентября 2005 14:45  · Личное сообщение · #3  | 
| 
 | 
Создано: 11 сентября 2005 15:04  · Личное сообщение · #4  | 
| 
 | 
Создано: 11 сентября 2005 15:06  · Личное сообщение · #5  | 
| 
 | 
Создано: 11 сентября 2005 15:09  · Личное сообщение · #6  | 
| 
 | 
Создано: 11 сентября 2005 15:16  · Личное сообщение · #7  | 
| 
 | 
Создано: 11 сентября 2005 15:23  · Личное сообщение · #8  | 
| 
 | 
Создано: 11 сентября 2005 15:33  · Личное сообщение · #9  | 
| 
 | 
Создано: 11 сентября 2005 15:35  · Личное сообщение · #10  | 
| 
 | 
Создано: 11 сентября 2005 15:42  · Личное сообщение · #11  | 
| 
 | 
Создано: 11 сентября 2005 16:41  · Личное сообщение · #12  | 
| 
 | 
Создано: 11 сентября 2005 16:59  · Личное сообщение · #13  | 
| 
 | 
Создано: 11 сентября 2005 18:27  · Личное сообщение · #14  | 
| 
 | 
Создано: 11 сентября 2005 18:56  · Личное сообщение · #15  | 
| 
 | 
Создано: 13 сентября 2005 19:03  · Личное сообщение · #16 Решил я поковырять этот фильтр для Photosohop,а так как это своего рода библиотека,то у меня возникли некоторые непонятки. Например,как восстановить импорт этого модуля в ImpRec'е? Выбрать основной процесс (Photoshop.exe), а потом через "Pick DLL" выбрать модуль? Далее нашёл OEP - либо 15748FA0, либо 15648FA0 - т.е. младшее слово является статичным в этой величине,а старшее изменяется в соответствии с адресом базовой загрузки...так что-ли? Сам же Image Base равен 10000000 . И какой OEP теперь прописывать в ImpRec'е? P.S. Да,кстати,как же это ASProtect - это же самый настоящий ASPack... ----- the Power of Reversing team ![]()  | 
| 
 | 
Создано: 13 сентября 2005 19:09  · Личное сообщение · #17 DillerInc пишет: Например,как восстановить импорт этого модуля в ImpRec'е? Выбрать основной процесс (Photoshop.exe), а потом через "Pick DLL" выбрать модуль? Да DillerInc пишет: Далее нашёл OEP - либо 15748FA0, либо 15648FA0 - т.е. младшее слово является статичным в этой величине,а старшее изменяется в соответствии с адресом базовой загрузки...так что-ли? Да DillerInc пишет: И какой OEP теперь прописывать в ImpRec'е? без Image Base ![]()  | 
| 
 | 
Создано: 13 сентября 2005 19:33  · Личное сообщение · #18 Asterix пишет: без Image Base ...ну, ясно,что без Image Base. Проблема в том,из чего его вычислять: 15748FA0-10000000 ...или 28FA0-10000000   ...
Значение 28FA0 взято отсюда: ADD EAX, [EBP+XXXXXXXX]; EAX = 28FA0, [EBP+XXXXXXXX] = базовая загрузка(например, 15620000) POPAD JZ RET PUSH EAX RET ; на ОЕР ----- the Power of Reversing team ![]()  | 
| 
 | 
Создано: 13 сентября 2005 19:42 · Поправил: Asterix  · Личное сообщение · #19 DillerInc Я тут минитутор недавно не в тему постил, вот сюда он как раз подходит Переход на OEP ASPack'а 2.12 выглядит так(взято из PE.ldw) ------------ .aspack:140213A9 89 85 A8 03 00 00     mov     [ebp+3A8h], eax ; патчит push 0 на push OEP по адресу 140213BA
.aspack:140213AF 61                    popa
.aspack:140213B0 75 08                 jnz     short loc_140213BA
.aspack:140213B2 B8 01 00 00 00        mov     eax, 1
.aspack:140213B7 C2 0C 00              retn    0Ch
.aspack:140213BA                               ; ---------------------------------------------------------------------- -----
.aspack:140213BA
.aspack:140213BA       loc_140213BA:                           ; CODE XREF: start+3AFj
.aspack:140213BA 68 00 00 00 00        push    0               ; заносим OEP на стек
.aspack:140213BF C3                    retn
.aspack:140213C0                               ; ---------------------------------------------------------------------------
.aspack:140213C0
---------------------------------------------------------------
нужно, например, пропатчить байт по адресу 14002836 на 0x74 ----------------------------------------------------------- т.к. это dll(грузится по разным адресам) то нужно обязательно учесть это обстоятельство в патче, поэтому место для патча должно вычисляться через ebp, как это делает сам ASPack когда прописывает оригинальную точку входа патч вписываем по адресу 14022100 в области нулей(это выравнивание секции) 14022100: mov     BYTE PTR [ebp-X], 074
          mov     [ebp+3A8h], eax ; эту команду нужно обязательно вставить в патч,
т.к. мы затрем эту команду ASPack'а прописывая прыжок на наш патч
          jmp     140213AF
вычисляем ebp на виндовом калькуляторе в hex режиме: ebp+3A8 = 140213BA + 1 ebp = 140213BA + 1 - 3A8 = 14021013 теперь вычислим константу X: ebp-X = 14002836 X = ebp - 14002836 = 14021013 - 14002836 = 1E7DD теперь патч примет вид: 14022100: mov     BYTE PTR [ebp-1E7DD], 074h
          mov     [ebp+3A8h], eax
          jmp     140213AF
вот так это выглядит в Ида: .aspack:14022100 loc_14022100: ; CODE XREF: start+3A8j .aspack:14022100 C6 85 23 18 FE FF 74 mov byte ptr [ebp-1E7DDh], 74h .aspack:14022107 89 85 A8 03 00 00 mov [ebp+3A8h], eax .aspack:1402210D E9 9D F2 FF FF jmp loc_140213AF и теперь впишем jmp на патч: .aspack:140213A7 0B C9 or ecx, ecx .aspack:140213A9 E9 52 0D 00 00 jmp near ptr unk_14022100 .aspack:140213A9 ; ---------------------------------------------------------------------- ----- .aspack:140213AE 90 db 90h ; Р .aspack:140213AF ; ---------------------------------------------------------------------- ----- .aspack:140213AF 61 popa .aspack:140213B0 75 08 jnz short loc_140213BA .aspack:140213B2 B8 01 00 00 00 mov eax, 1 .aspack:140213B7 C2 0C 00 retn 0Ch .aspack:140213BA ; ---------------------------------------------------------------------- ----- .aspack:140213BA .aspack:140213BA loc_140213BA: ; CODE XREF: start+3AFj .aspack:140213BA 68 00 00 00 00 push 0 ; заносим OEP на стек .aspack:140213BF C3 retn ![]()  | 
| 
 | 
Создано: 13 сентября 2005 19:46 · Поправил: Asterix  · Личное сообщение · #20  | 
| 
 | 
Создано: 13 сентября 2005 20:44  · Личное сообщение · #21 Asterix пишет: Почти, только вместо 10000000 используй реальный адрес загрузки модуля ...что-то я задолбался уже с этим модулем - что только я не вписывал в это поле "ОЕР", каждый раз ImpRec посылает меня подальше   .
Asterix, а мог бы ты подробнее объяснить, в чём суть твоего патча ? ----- the Power of Reversing team ![]()  | 
| 
 | 
Создано: 13 сентября 2005 20:47  · Личное сообщение · #22  | 
| 
 | 
Создано: 13 сентября 2005 22:04  · Личное сообщение · #23  | 
| 
 | 
Создано: 13 сентября 2005 22:51  · Личное сообщение · #24  | 
| eXeL@B —› Основной форум —› Распаковка фильтра для Фотошопа | 











 ...
 .
 Для печати