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

 eXeL@B —› Основной форум —› Nanomites
Посл.ответ Сообщение


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 марта 2006 08:15
· Личное сообщение · #1

Копаю я прот с наномитами. И попался один наномит странный. В дочернем процессе выполняется следующее:

lea eax,dword ptr [00401000]
shr,eax,2
int 3
int 3
nop
nop
nop
nop


А в процессе - родителе считывается из контекста eax и делается следующее:

shl eax,2
add eax,4
ReadProcessMemory(hProcess,eax,*buff,4,Dummy,0);
mov Context.Eip,dword ptr [buff]
SetThreadContext...

Т.е. это безусловный джамп.

Посмотрел в дочернем процессе по адресу 00401004 лежит 00401В30, а дальше идут названия импортируемых библиотек. По адресу 00401В30 идет вызов GetCommandLineA ну далее нормальное выполнение программы. И вот у меня проблема - что это за иструкция? Единственное, что приходит на ум, что это какой то макрос. Типа вставляешь в исходник и прот превращает команду после него в наномит.
Пример:

[nano_start]
jmp 00401В30
[nano_end]


После этого прот формирует табличку всех похереных аресов и потом при срабатывании читает из дочернего процесса. Может у кого нибудь есть другие мысли? Самое плохое, что такой наномит только один в программе поэтому не поэксперементируешь.

-----
Yann Tiersen best and do not fuck




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 20 марта 2006 08:41
· Личное сообщение · #2

PE_Kill пишет:
Копаю я прот с наномитами.

А что за прот ? Арма ? PESpin ?

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 20 марта 2006 14:38
· Личное сообщение · #3

Может ли это быть jmp d,[imm32] ?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 марта 2006 14:46 · Поправил: PE_Kill
· Личное сообщение · #4

DrGolova а add eax,4 вместо shr eax,2? Ну не знаю... Вроде больше 1 инструкции прот не прет. (PESpin)

-----
Yann Tiersen best and do not fuck





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

Создано: 21 марта 2006 10:29
· Личное сообщение · #5

ты бы прогу чтоли выложил =)




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 марта 2006 10:31
· Личное сообщение · #6

pediy.com/tools/packers.htm

-----
Yann Tiersen best and do not fuck





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

Создано: 21 марта 2006 11:13
· Личное сообщение · #7

чего-то оно не брякается на SetThreadContext if Context.Eip == 401b30 %)




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 марта 2006 11:23
· Личное сообщение · #8

Mario555 Этот адрес я от балды взял. Реальный не помню, 401D42 ? Не помню в общем. Посмотри он в дочернем лежит по адресу 401004.

-----
Yann Tiersen best and do not fuck





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

Создано: 21 марта 2006 12:32
· Личное сообщение · #9

ну макрос явно CLEAR_START/CLEAR_END только вот из-за того что версия пакера неполная понять как в общем случай этот макрос связан с наномитом... =)




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 марта 2006 12:37
· Личное сообщение · #10

а CLEAR_START/CLEAR_END разве не call dword ptr [xxxxxxxx] эмулируется?

-----
Yann Tiersen best and do not fuck





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

Создано: 21 марта 2006 13:04
· Личное сообщение · #11

чего ? этот макрос используется для удаления (одноразового выполнения) участков кода вроде... кста экзампл этого макроса после запаковки непашет %) может потому что собрал я его в 2005 студии а может сам пакер кривой.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 марта 2006 13:06
· Личное сообщение · #12

Mario555 интересно, а как ты наномит хочешь проверить, если прот наномиты навешивает только с Private лицензией.

-----
Yann Tiersen best and do not fuck





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

Создано: 21 марта 2006 14:21
· Личное сообщение · #13

я никак ) говорю же
Mario555 пишет:
только вот из-за того что версия пакера неполная понять как в общем случай этот макрос связан с наномитом ...

... - оно же хз, оно же малореально ;) это про общий случай, а так - нафиг оно надо ? посмотреть как обрабатывается один наномит и повторить.
PS врятли когда-нить этот pespin попадётся хоть на одной реальной проге, тем более его приватная версия.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 22 марта 2006 05:14
· Личное сообщение · #14

Mario555 пишет:
врятли когда-нить этот pespin попадётся хоть на одной реальной проге

Да знаю я. Его распаковывать - 1 час (со всеми настройками + DebugBlocker + Nanomites). Просто это идеальный вариант для продолжения написания движка для распаковки. На нем и IAT реконструктор тестить буду. Ну а раз наномиты есть, то я уже придумал алгоритм их восстановления (может в арме пригодится ;))

-----
Yann Tiersen best and do not fuck





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

Создано: 22 марта 2006 09:36
· Личное сообщение · #15

PE_Kill пишет:
может в арме пригодится

ну в арме основная проблема - это отделение fake наномитов от реально наномитов ) а остальное там уже описано и разобрано, основная часть вместе с исходниками в статье Драгона, а про нововведения (шифрованные таблицы и усложнение определения типа переходов) было у испанцев.


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


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