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

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

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

Создано: 17 июня 2015 18:32
· Личное сообщение · #1

Антиотладка начинается с функции IsDebuggerPresent, ее я нейтрализовал, далее эта шняга трет себя нулями, затем
Code:
  1. 0043D975   61               POPAD
  2. 0043D976   50               PUSH EAX
  3. 0043D977   33C0             XOR EAX,EAX
  4. 0043D979   64:FF30          PUSH DWORD PTR FS:[EAX]
  5. 0043D97C   64:8920          MOV DWORD PTR FS:[EAX],ESP
  6. 0043D97F   EB 01            JMP SHORT packedv1.0043D982
  7. 0043D981   CC               INT3
  8. 0043D982   0000             ADD BYTE PTR DS:[EAX],AL
  9. 0043D984   0000             ADD BYTE PTR DS:[EAX],AL
  10. 0043D986   0000             ADD BYTE PTR DS:[EAX],AL
  11. 0043D988   0000             ADD BYTE PTR DS:[EAX],AL
  12. 0043D98A   0000             ADD BYTE PTR DS:[EAX],AL
  13. 0043D98C   0000             ADD BYTE PTR DS:[EAX],AL

как я понимаю это установка обработчика исключения, затем собсно исключение. как обойти?

7128_17.06.2015_EXELAB.rU.tgz - packedv1.0.exe



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 17 июня 2015 18:49
· Личное сообщение · #2

Code:
  1. Yoda's Crypter v1.3 detected !

может просто взять и почитать статьи про распаковку сабжа???

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

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

Создано: 17 июня 2015 19:52 · Поправил: unknownproject
· Личное сообщение · #3

5215_17.06.2015_EXELAB.rU.tgz - packedv1.0_unpacked.exe

Анпакается банально:
Аттач к запущенному процессу.
Пауза.
Нью ориджин -> 401000 [OEP].
Корректируем начало и размер таблицы импорта, распознанной импреком и получаем в итоге:
OEP: 00001000
IATRVA: 0003C194
IATSize: 00000138
.
Импорт восстановлен в 5 секцию (.idata), которая была предварительно обнулена.
Sfx секция криптора срезана.Усё.

//Анпакал под Xp.На других осях не проверял.

-----
TEST YOUR MIGHT





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

Создано: 18 июня 2015 00:34
· Личное сообщение · #4

unknownproject пишет:
Аттач к запущенному процессу.
Пауза.



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




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

Создано: 18 июня 2015 01:28 · Поправил: dosprog
· Личное сообщение · #5

ClockMan пишет:
..


Ну так а подумать?





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

Создано: 18 июня 2015 20:07
· Личное сообщение · #6

Фишка в том, что это не универсальный способ. Если OEP не 401000, то как быть?



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 19 июня 2015 00:31
· Личное сообщение · #7

motoroller пишет:
Если OEP не 401000, то как быть?


dosprog пишет:
Ну так а подумать?




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

Создано: 19 июня 2015 03:20
· Личное сообщение · #8

Не, ну это сложно



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

Создано: 19 июня 2015 08:05
· Личное сообщение · #9

не догоняю. Если приаттачится можно выудить сегмент кода, но OEP...



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

Создано: 19 июня 2015 08:39 · Поправил: dosprog
· Личное сообщение · #10

motoroller пишет:
но OEP...


Так в этом и фишка ..


--Добавлено--

TryAga1n пишет:
Каждый компиль делает как 2 капли воды, похожие точки входа.


-- Это в обычном случае, если разработчик не перекуёвдил стандартные библиотеки.
Ну, и в случае с ассемблером - тоже точка входа может быть где угодно





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

Создано: 19 июня 2015 08:45 · Поправил: TryAga1n
· Личное сообщение · #11

motoroller пишет:
но OEP...

Если в навесном упаковщике/проте нет StolenByte, то ОЕП найти достаточно легко. Для начала, определить компилятор, сделать это можно по линкеру, секциям или же определенным участкам кода, а дальше, в зависимости от компилятора, найти оеп. Каждый компиль делает как 2 капли воды, похожие точки входа.

p.s.: А у Borland C++(старых версий точно) ОЕП вообще всегда 00401000




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

Создано: 19 июня 2015 12:09 · Поправил: ClockMan
· Личное сообщение · #12

motoroller пишет:
0043D97C   64:8920          MOV DWORD PTR FS:[EAX],ESP
0043D97F   EB 01            JMP SHORT packedv1.0043D982

Ну так это и есть конечный код для йода
посмотри в стеке адресс обработчика исключения
Code:
  1. 0022FFAC   0022FFE0  Pointer to next SEH record
  2. 0022FFB0   0043D90B  SE handler

там ты увидишь интересную для себя вещь......

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




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

Создано: 19 июня 2015 21:10
· Личное сообщение · #13

ClockMan, благодарю, с этим я справился. Go to expression в дизасме на SEH , затем ctrl+*, дабы сымитировать обработку исключения.
Code:
  1. 0043D90B   55               PUSH EBP
  2. 0043D90C   8BEC             MOV EBP,ESP
  3. 0043D90E   57               PUSH EDI
  4. 0043D90F   36:8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]
  5. 0043D913   3E:8BB8 C4000000 MOV EDI,DWORD PTR DS:[EAX+C4]
  6. 0043D91A   3E:FF37          PUSH DWORD PTR DS:[EDI]
  7. 0043D91D   33FF             XOR EDI,EDI
  8. 0043D91F   64:8F07          POP DWORD PTR FS:[EDI]
  9. 0043D922   3E:8380 C4000000>ADD DWORD PTR DS:[EAX+C4],8   ;<----я тут
  10. 0043D92A   3E:8BB8 A4000000 MOV EDI,DWORD PTR DS:[EAX+A4]
  11. 0043D931   C1C7 07          ROL EDI,7
  12. 0043D934   3E:89B8 B8000000 MOV DWORD PTR DS:[EAX+B8],EDI
  13. 0043D93B   B8 00000000      MOV EAX,0
  14. 0043D940   5F               POP EDI
  15. 0043D941   C9               LEAVE
  16. 0043D942   C3               RETN

стек относительно EBP
Code:
  1. $ ==>    > 0022FFC0
  2. $+4      > 0022FFE0  Pointer to next SEH record
  3. $+8      > 0043D90B  SE handler
  4. $+C      > 7C910228  ntdll.7C910228
  5. $+10     > FFFFFFFF
  6. $+14     > 7FFDE000
  7. $+18     > 0022FFF0
  8.  

эта шняга опять вызывает исключение? я так пару раз ctrl+* поделал - оно постоянно исключение вызывает. че делать - херь его знает...




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

Создано: 20 июня 2015 00:41
· Личное сообщение · #14

motoroller
Моя догадка у вас олька неправильно настроена........
Попробуй так
Debbugin options>Exseptions>ignore also... и поставь значение 00000000....FFFFFFFF
ну и второе
Code:
  1. 0043D92A   3E:8BB8 A4000000 MOV EDI,DWORD PTR DS:[EAX+A4]
  2. 0043D931   C1C7 07          ROL EDI,7
  3. 0043D934   3E:89B8 B8000000 MOV DWORD PTR DS:[EAX+B8],EDI

в EDI OEP проги, после обработки исключения системной библиотекой она должна перевести код на оригинальную точку входа

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


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

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

Создано: 20 июня 2015 09:47
· Личное сообщение · #15

Упаковщик снял, встал на OEP. Благодарю


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


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