Сейчас на форуме: ut2004, vsv1 (+7 невидимых)

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

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

Создано: 06 ноября 2006 10:35
· Личное сообщение · #1

Пишу прогу, почти на асме. Хочу защитить ее от исследования. Уже добавил много чего интересного, ну там и мусорные команды, и самомодификацию, и всякие там типа zero_ecx - mov ECX,0x02E3C933;jmp $-4. Вот узнал про какие-то наномиты. Но нигде не описываеться что это такое. Только так, краткий намек что типа jmp заменяеться на int3, а нельзя ли поподробнее что это и как реализовать ?




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 06 ноября 2006 12:08
· Личное сообщение · #2

Наномиты я встречал в Арме. Действительно, это замена jmp (или условных переходов) на int3. Когда протектор встречает int3, то по табличке, которая хранится в файле, смотрит что там должно быть и переходит. Сам на практике не пробовал делать.

-----
Уважайте других и пишите грамотно.





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

Создано: 07 ноября 2006 01:50
· Личное сообщение · #3

2 процесса, отладчик и отлаживаемый, или один но с захученым хэндлером.

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




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

Создано: 07 ноября 2006 09:31
· Личное сообщение · #4

про 2 процесса это уже лучше
PE_Kill пишет:
или один но с захученым хэндлером.


а вот это на пяльцах можно объяснить ?

Ну вообщем это:
void main(void)
{
$PUSH #SehHandler;
$PUSH FSDWORD[0];
FSDWORD[0] = ESP;
pl1:
$int 3;

//Куча всякого кода...
ExitProcess(0);

SavePlace1:
MessageBox(0,"test","test",0);
$POP FSDWORD[0]
$ADD ESP, 4
}

dword cdecl SehHandler(dword pExcept,dword pFrame,dword pContext,dword pDispatch)
{
EBX=pContext;
$cmp EBX.CONTEXT.Eip,#pl1;
$jne $+12;
EBX.CONTEXT.Eip=#SavePlace1;
$cmp EBX.CONTEXT.Eip,#pl2;//
$jne $+12;//
EBX.CONTEXT.Eip=#SavePlace2;// эти 3 строки для наглядности
return(ExceptionContinueExecution);
}
Оно ?
ЗЫ извиняюсь за столь странный код, это С--, ну тот кто знаком с асмом и Си поймет.



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 07 ноября 2006 11:53
· Личное сообщение · #5

Shooshpanchik
Посмотри --> Это <-- http://www.wasm.ru/forum/viewtopic.php?id=7698&p=1 , не совсем то, но может что полезное найдёшь.




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

Создано: 07 ноября 2006 22:42
· Личное сообщение · #6

SEH не канает, если твой SEH фрэйм окажется не первым в цепочке, а тот что будет первым, решит что прога вылетела, то кирдык твоей программе, хотя если ты будешь делать это в исходнике и сам контролировать SEH то получится. А вообще тут лучше VEH использовать или перехват KiUserExceptionDispatcher хотя это уже привязка к ОС.

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



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


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