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

 eXeL@B —› Вопросы новичков —› Помощь в распаковке!
Посл.ответ Сообщение

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

Создано: 23 января 2015 09:26
· Личное сообщение · #1

Здравствуйте!
Никак не могу распаковать программу,хоть и нет ошибок-она не работает.
Называется ePochta Verifier
Упакована:ASprotect ver 2.1 / 2.^ ( www.aspack.com )(Exeinfo PE).
Загрузил я её в OllyDbg,использовал скрипт Aspr2.XX_unpacker_v1.0E.osc-но он не нашёл OEP и выдал вот такую ошибку:Unsupported Aspr version or it not packer with Aspr?
Но было похоже на OEP,классическая PUSHAD например.
Прошёл пару раз с помощью Debug=>Execute till return-долго были всякие DLL и вот наконец OEP!
Code:
  1. 00530692  |. A9 00000080    TEST EAX,80000000
  2. 00530697  |. 0F94C0         SETE AL
  3. 0053069A  |. 8883 7C010000  MOV BYTE PTR DS:[EBX+17C],AL
  4. 005306A0  |> A1 CCFC8600    MOV EAX,DWORD PTR DS:[86FCCC]

С помощью PeTools сделал dump а в Import REconstructor даже IAT сама нашлась.

Жму Fix dump и не работает потом dump!
Пробывал ещё указывать то что писал IMPRec,ставил RVA:4F9000 Size:00005000
Ещё использовал скрипт для восстановления IAT:ASProtect 2.xx IAT Recovery указывал то что выше.
Долго работал,но файл всё равно не работает.
Плиз,помогите распаковать-больше нету идей.
Скрипты приатачены,файлик и конечный дамп тут



6566_23.01.2015_EXELAB.rU.tgz - Atach.rar



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 23 января 2015 09:32
· Личное сообщение · #2

Aspr2.XX_unpacker_v1.15F-2

0958_23.01.2015_EXELAB.rU.tgz - Aspr2.XX_unpacker_v1.15F-2.rar



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

Создано: 23 января 2015 09:50 · Поправил: Alexin
· Личное сообщение · #3

Не помог скрипт,или вот такая ошибка или если на OEP
Code:
  1. Access violation when reading [000001E1] - use Shift+F7/F8/F9 to pass exception to program
и Shift+f9 не работает.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 23 января 2015 10:00
· Личное сообщение · #4

ASProtect unpacker by PE_Kill



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

Создано: 23 января 2015 10:05
· Личное сообщение · #5

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

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

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

Создано: 23 января 2015 10:16
· Личное сообщение · #6

Распаковалось,но файл не запускается-ошибки .



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

Создано: 23 января 2015 15:59
· Личное сообщение · #7

die обнаружил там ещё NTkrnl Protector

PE: protector: ASProtect(1.23-2.56)[-]
PE: protector: NTkrnl Protector(-)[-]
PE: compiler: Embarcadero Delphi(XE)[-]
PE: linker: Turbo Linker(2.25*,Delphi)[EXE32]

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

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

Создано: 23 января 2015 17:34
· Личное сообщение · #8

Alexin

В этой программе имеется несколько подпрограмм, код которых можно раскриптовать только при наличии валидного ключа (я распаковывал несколько программ из серии ePochta, в том числе и ePochta Verifier 8.2.0.44). Поэтому простая распаковка ничего не даст. Для сведения, в ePochta Verifier 8.2.0.44 мной было восстановлено 16 подпрограмм с закриптованным кодом.

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


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 23 января 2015 20:31
· Личное сообщение · #9

Alexin пишет:
и вот наконец OEP!
Code:
  1. 00530692  |. A9 00000080    TEST EAX,80000000
  2. 00530697  |. 0F94C0         SETE AL
  3. 0053069A  |. 8883 7C010000  MOV BYTE PTR DS:[EBX+17C],AL
  4. 005306A0  |> A1 CCFC8600    MOV EAX,DWORD PTR DS:[86FCCC]

Сам софт не смотрел, но на ОЕП это не похоже ни разу.




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

Создано: 24 января 2015 00:19
· Личное сообщение · #10

vnekrilov пишет:
Alexin

В этой программе имеется несколько подпрограмм, код которых можно раскриптовать только при наличии валидного ключа (я распаковывал несколько программ из серии ePochta, в том числе и ePochta Verifier 8.2.0.44). Поэтому простая распаковка ничего не даст. Для сведения, в ePochta Verifier 8.2.0.44 мной было восстановлено 16 подпрограмм с закриптованным кодом.


А валидный ключ это активационный ключ ?!

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




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

Создано: 24 января 2015 06:26
· Личное сообщение · #11

vnekrilov пишет:
В этой программе имеется несколько подпрограмм, код которых можно раскриптовать только при наличии валидного ключа (я распаковывал несколько программ из серии ePochta, в том числе и ePochta Verifier 8.2.0.44). Поэтому простая распаковка ничего не даст. Для сведения, в ePochta Verifier 8.2.0.44 мной было восстановлено 16 подпрограмм с закриптованным кодом.

Я правильно понимаю подпрограммы это CALL где-то в коде?
И где они...эмм используются?Проверяется что-то при старте программы или из-за них нельзя нормально распаковать?
Видел парочку участков кода,которые не распознаются в Ollydbg.
Archer пишет:
Сам софт не смотрел, но на ОЕП это не похоже ни разу.

Незнаю как его найти,Import REConstructor уже пару раз выдавал ложное сообщение о правильном OEP.Пока думаю что OEP тут
Code:
  1. 00406D0C   83F8 00          CMP EAX,0
  2. 00406D0F   74 71            JE SHORT AtomicMa.00406D82
  3. 00406D11   8B4424 04        MOV EAX,DWORD PTR SS:[ESP+4]
  4. 00406D15   FC               CLD




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

Создано: 24 января 2015 06:36
· Личное сообщение · #12

Alexin пишет:
Прошёл пару раз с помощью Debug=>Execute till return-долго были всякие DLL и вот наконец OEP!

Супер метод.Возьму на вооружение.
Alexin пишет:
и вот наконец OEP!

Я даже не знал как это прокомметировать.Вы хоть раз программу на каком-либо языке писали, компилировали, смотрели в отладчике ? Очень уж сомневаюсь, ибо в это случае Вы бы точно знали, какие опкоды расположены на точке входа, какие процедуры/функции вызываются первыми.На основе этого можно было составить сигнатуры и корректировать OEP при 100% распакованном в памяти коде.

-----
TEST YOUR MIGHT




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

Создано: 24 января 2015 08:16 · Поправил: vnekrilov
· Личное сообщение · #13

Alexin

Для распаковки этой программы лучше всего использовать мой набор скриптов, а не скрипты от VolX (посмотри ветку форума - https://exelab.ru/f/action=vthread&forum=13&topic=11596&page=0). На этой ветке имеются мои туториалы по распаковке Asprotect'а и необходимый набор скриптов. Вот данные от работы скрипта по восстановлению таблицы IAT:

Code:
  1. В программе нет вызовов APIs Asprotect из таблицы IAT
  2. * Программа имеет вызовы APIs Asprotect из Asprotect.dll: 00B2EBD4
  3. * Вызов из Asprotect.dll API GetRegistrationInformation: 0066A994
  4. * Вызов из Asprotect.dll API GetHardwareID: 0066A984
  5. * Эмулированная API GetHardwareID: 008496C0
  6. * Эмулированная API GetRegistrationInformation: 008496D4
  7. * OEP: 0084CA84
  8. * Адрес AsProtect.dll: 00AE9000
  9. * Адрес OEP программы: 0084CA84
  10. * Адрес OEP программы для ImpREC: 0044CA84
  11. * Адрес таблицы IAT: 008F9DC4
  12. * Адрес таблицы IAT для ImpREC: 004F9DC4
  13. * Размер таблицы IAT для ImpREC: 00000B54


В этой программе код OEP не украден!!!

Code:
  1. 0084CA84    55              PUSH EBP
  2. 0084CA85    8BEC            MOV EBP,ESP
  3. 0084CA87    83C4 F0         ADD ESP,-10
  4. 0084CA8A    53              PUSH EBX
  5. 0084CA8B    B8 B0CB8300     MOV EAX,83CBB0
  6. 0084CA90    E8 2BF2BBFF     CALL 0040BCC0
  7. 0084CA95    8B1D D0FF8600   MOV EBX,DWORD PTR DS:[86FFD0]
  8. 0084CA9B    8B03            MOV EAX,DWORD PTR DS:[EBX]


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

Вот например, как выглядит закриптованный код:

Code:
  1. 00666384    B8 88646600     MOV EAX,666488
  2. 00666389    E8 FE24DAFF     CALL 0040888C
  3. 0066638E    85C0            TEST EAX,EAX
  4. 00666390    0F8E B7000000   JLE 0066644D
  5. 00666396    E9 B2000000     JMP 0066644D
  6. 0066639B    8208 89         OR BYTE PTR DS:[EAX],FFFFFF89
  7. 0066639E    DFAA A92A597C   FILD QWORD PTR DS:[EDX+7C592AA9]
  8. 006663A4    92              XCHG EAX,EDX
  9. 006663A5    C7              ???
  10. 006663A6    50              PUSH EAX
  11. 006663A7    17              POP SS
  12. 006663A8    3D 6FFEC3D8     CMP EAX,D8C3FE6F
  13. 006663AD    61              POPAD
  14. 006663AE    7D 21           JGE SHORT 006663D1


А так выглядит восстановленный (раскриптованный) код:

Code:
  1. 00666384    B8 88646600     MOV EAX,666488
  2. 00666389    E8 FE24DAFF     CALL 0040888C
  3. 0066638E    85C0            TEST EAX,EAX
  4. 00666390    0F8E B7000000   JLE 0066644D
  5. 00666396    E9 01000000     JMP 0066639C
  6. 0066639B    90              NOP
  7. 0066639C    33C0            XOR EAX,EAX
  8. 0066639E    55              PUSH EBP
  9. 0066639F    68 30646600     PUSH 666430
  10. 006663A4    64:FF30         PUSH DWORD PTR FS:[EAX]
  11. 006663A7    64:8920         MOV DWORD PTR FS:[EAX],ESP
  12. 006663AA    B2 01           MOV DL,1
  13. 006663AC    A1 6C014400     MOV EAX,DWORD PTR DS:[44016C]
  14. 006663B1    E8 C270DEFF     CALL 0044D478
  15. 006663B6    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
  16. 006663B9    33C0            XOR EAX,EAX


(Пример закриптованного и раскриптованного кода приведен для версии ePochta Verifier 8.2.0.44).



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

Создано: 24 января 2015 11:37 · Поправил: Alexin
· Личное сообщение · #14

Спасибо за помощь а CyberGod за распакованный файл.
Так как этот раздел для новичков(это типа я:s5я решил докопаться,как же быть без ключа.
Программа отправляет на сервер запрос и получает ответ 0 или 1.Если 0,то демо режим без ошибок-а если 1 то вот такие страшные ошибки.

Я решил найти откуда они берутся,с помощью Memory Breackpoint и Hardware Breackpont я наконец-то за пару часов дошёл до этого момента:
Code:
  1. 00779C27  |. 50             PUSH EAX
  2. 00779C28  |. 57             PUSH EDI
  3. 00779C29  |. 56             PUSH ESI
  4. 00779C2A  |. 53             PUSH EBX
  5. 00779C2B     FF15 60898F00  CALL DWORD PTR DS:[8F8960]               ; kernel32.RaiseException
  6. 00779C31  |. 5F             POP EDI
  7. 00779C32  |. 5E             POP ESI
  8. 00779C33  |. 5B             POP EBX
  9. 00779C34  |. 5D             POP EBP
  10. 00779C35  \. C2 1000        RETN 10

Эту Call нельзя обойти-Ollydbg сразу вылетает с ошибкой,занопить её тоже нельзя..стоит ли копать её дальше?Если я уберу все error'ы программа будет работать?
ЗЫ Пока смог только активировать все кнопки в демо.



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 24 января 2015 12:19
· Личное сообщение · #15

Alexin
Смотри выше по стеку кто вызывает эту функцию.

-----
старый пень




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

Создано: 24 января 2015 13:15
· Личное сообщение · #16

Alexin пишет:
Программа отправляет на сервер запрос и получает ответ 0 или 1.Если 0,то демо режим без ошибок-а если 1 то вот такие страшные ошибки.

Лол.Там так-то 7 первых символов серийника захардкожены и рядом хвид генерится.
Касательно фэйлов во время патча - это проделки дерьмового быдлокодерского менеджера памяти для делфи.

-----
TEST YOUR MIGHT


| Сообщение посчитали полезным: Alexin
 eXeL@B —› Вопросы новичков —› Помощь в распаковке!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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