Сейчас на форуме: Magister Yoda (+5 невидимых)

 eXeL@B —› Основной форум —› Антиотладочные приемы
<< . 1 . 2 . 3 . 4 . 5 . >>
Посл.ответ Сообщение

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

Создано: 06 июля 2008 12:07 · Поправил: Sturgeon
· Личное сообщение · #1

На днях откопал свою писульку про антиотладку. В свое время собирал всякий материал, в основном английский, переводил и собирал во одну доку. Вот решил выложить, чтобы попинали.
Может кому-то из чайников вроде меня пригодится. Хотя, конечно, хочется, чтобы кто-то из опытных реверсеров посмотрел и указал на ошибки, неточности перевода и т.д.




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 08 июля 2008 10:53
· Личное сообщение · #2

pavka пишет:
CC int3
9D popfd

Это чегой? )



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

Создано: 08 июля 2008 10:58
· Личное сообщение · #3

dermatolog пишет:
Это чегой? )

китайцы говорят антиотладка однако в последнем VMP



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

Создано: 08 июля 2008 11:05 · Поправил: Smon
· Личное сообщение · #4

dermatolog пишет:
Это чегой?

Прикинулся мля, что не в курсах

ЗЫ: Хотя мож и вправду не в курсах, эта антиотладка (придуманная к слову не dermatolog'ом) в свободном доступе еще не проскакивала

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





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 08 июля 2008 12:40
· Личное сообщение · #5

а разве в ехекруптере не аналогичная хрень использвуется? это вроде против ольги конкретно заточено?

-----
[nice coder and reverser]




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

Создано: 08 июля 2008 12:43
· Личное сообщение · #6

А поподробнее?



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

Создано: 08 июля 2008 12:44
· Личное сообщение · #7

Hellspawn пишет:
а разве в ехекруптере не аналогичная хрень использвуется

есть, но сделано по другому, гораздо более тупо, а заточено конкретно против ольги

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




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

Создано: 08 июля 2008 12:49 · Поправил: Smon
· Личное сообщение · #8

Sturgeon
Твой док, кстати, более чем на 90 % состоит из работы Ferrie (просто переведена). На, погляди тут, мож чё еще забыл добавить:
http://forum.virustech.org/viewtopic.php?pid=278 http://forum.virustech.org/viewtopic.php?pid=278

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




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

Создано: 08 июля 2008 12:53
· Личное сообщение · #9

Smon пишет:
Твой док, кстати, более чем на 90 % состоит из работы Ferrie

Истинная правда.
Но у него и собрано практически все, что лежит в общем доступе в нете. А остальные 10 % насобирал из других мест.



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

Создано: 08 июля 2008 13:58
· Личное сообщение · #10

Smon пишет:
forum.virustech.org/viewtopic.php?pid=278

Хм.. похоже чел с погремухой осень извращенец тупо постит одно и то же на разных форумах ..антиодладка ради самой антиотладки Живой пример ленин прот, напичкан антиотладкой по самое немогу а снимется в считаные секунды



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

Создано: 08 июля 2008 14:44
· Личное сообщение · #11

Спасибо Sturgeon крутой док.




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 09 июля 2008 02:28
· Личное сообщение · #12

pavka
А как ты Олькой, обошёл антидебаг на приблуде CHimpRECU???
Кста чего на нём навешано???

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 09 июля 2008 03:20
· Личное сообщение · #13

Bronco
Ленин прот Как обычно циклил в библе




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 17 июля 2008 11:07
· Личное сообщение · #14

pavka пишет:
Живой пример ленин прот, напичкан антиотладкой по самое немогу а снимется в считаные секунды


Это ты про какую версию прота?

-----
aLL rIGHTS rEVERSED!




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

Создано: 17 июля 2008 14:37
· Личное сообщение · #15

DaRKSiDE пишет:
Это ты про какую версию прота?

Да у нее все версии одинаковы




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 17 июля 2008 14:55
· Личное сообщение · #16

pavka пишет:
Да у нее все версии одинаковы


Если не секрет, на каком трике возникает зацикливание проги?

-----
aLL rIGHTS rEVERSED!




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

Создано: 17 июля 2008 17:15
· Личное сообщение · #17

DaRKSiDE
Это реакция на анитотладку тайминг,int2d чек на нопы и т.д



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 14 августа 2008 13:06
· Личное сообщение · #18

Sturgeon

Про вот это:
push ss
pop ss
pushf
nop
,

можно было и поподробнее написать, тем более что виноваты в этом баге не столько отладчики, сколько инженеры Intel. И вроде бы SoftIce на этом не палится (так в книге было какой-то описано - сам правда не проверял ещё.) Для айса код должен выглядеть вот так:
db 2Eh; префикс замены сегмента
pushfd
pop eax
pushfd
pop ebx
sub eax,ebx
jnz _detected


В целом книга (для статьи страниц слишком много) на 5+. Респект автору.

P.S. Прошу простить что поднял не самую свежую тему. Просто сам сейчас пишу проект на masm'е - "AntiSoftICE", который представляет собой квест-задание по антиотладке - надо пройти всё либо по F7, либо по F8 (для OllyDbg и IDA конечно же) и не "спалиться". Как только будет готов beta релиз - выложу на обзор.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 14 августа 2008 13:19
· Личное сообщение · #19

Предложил бы пересмотреть материал мануала в следующем ключе. Как понял, то что сейчас имеется это больше справочник, чем учебник и отсюда следует вывод что в любом справочнике должна быть катологизация! Я ее что-то не увидел! Если же говорить об учебной литературе, то думаю надо строить расположение трюков таким образом, чтобы читающий шел от новичка к уровню гуру! Ну и слодоевательно было разделение в содержании, трюки для новичка, трюки для гуру, трюки для среднего уровня! Ну и желательно чтобы в каждом трюке была ссылка на другой трюк, который бы помог познать этот трюк ;)

-----
My love is very cool girl.




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

Создано: 14 августа 2008 13:45
· Личное сообщение · #20

progopis.theCollision
Спасибо за пожелания. Кое-что я уже обновил и добавил. Когда будет существенно переработано выложу обновленную версию.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 14 августа 2008 16:31 · Поправил: theCollision
· Личное сообщение · #21

Sturgeon
Я бы хотел это видеть таким:
1. Разбитие по категориям с указанием страниц, к примеру "Применение DR-регистров", "Проверка флага TF" и т.д.
2. Содержание от простого к сложному
3. К каждому трюку должен прилогаться список пакеров, протов с указанием их версий, где это можно в живую потрогать
4. Содержание разбить на 3 части - Беггинер, Опытный, Гуру
5. Указание к каждому трюку симптомов. Наверное у многих возникал вопрос во время реверсинга : "Че ваще происходит то?" ;)))

Вообще бы, я бы это выложил уже сейчас, вдруг еще есть какие нюансы?!

-----
My love is very cool girl.




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

Создано: 14 августа 2008 17:39
· Личное сообщение · #22

theCollision пишет:
1. Разбитие по категориям с указанием страниц, к примеру "Применение DR-регистров", "Проверка флага TF" и т.д.

Так оглавление присутсвует. Или я не понял что ты имеешь ввиду?

3. К каждому трюку должен прилогаться список пакеров, протов с указанием их версий, где это можно в живую потрогать
Тут сложнее. Я же новичок. Информация по большей части это перевод и компиляция всего, что я нахожу в сети. И конкретно по пакерам и протам у меня немного информации.

Вот нашел интересную программку. Antidebug Tester. Реализовано много триков антиотладки. Кое-какие косяки в ней есть, но на посмотреть сгодится.

02aa_14.08.2008_CRACKLAB.rU.tgz - 080806Tester.rar



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

Создано: 14 августа 2008 21:31
· Личное сообщение · #23

Кстати, кто-нибудь может объяснить почему следующий код вызывает исключение под отладчиком?

invoke CloseHandle,011h
invoke CloseHandle,012h
invoke CloseHandle,018h
invoke CloseHandle,019h
invoke CloseHandle,01Ah





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

Создано: 14 августа 2008 22:23
· Личное сообщение · #24

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



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

Создано: 14 августа 2008 22:50
· Личное сообщение · #25

Archer
А, ну да, блин...
В моей же доке это есть.
Просто в одном месте увидел такой код с непонятными комментариями. Вот и впал в ересь.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 15 августа 2008 18:48
· Личное сообщение · #26

о, а я видел эту антидебаг фичу с closehandle'ами

www.asmtools.com/prod/idchanger.zip



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 августа 2008 12:54
· Личное сообщение · #27

progopis пишет:
push ss
pop ss
pushf
nop,

SoftICE 4.3.2.1 на этом спалился - в стэке флаг трассировки. А вот 2-ой способ, который я в том посте описывал уже не актуален (начиная с 386 ), во-первых там префикс для cs:, а во-вторых, даже если воткнуть байт 36h ( ss: ) - ни один из отладчиков не попался (IDA 5.0,SoftICE 4.3.2.1,OllyDbg 1.10) - проверено на практике.

Кстати, в статье отсутствует трюк с TerminateProcess, а он, надо сказать, достаточно популярен.




Ранг: 138.1 (ветеран)
Активность: 0.090
Статус: Участник
Одепт ЭкзэЛаба

Создано: 16 августа 2008 13:35
· Личное сообщение · #28

Народ не кому случаем на глаза не попадалось доков по снятию/обходу Memory breakpoint?



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

Создано: 16 августа 2008 13:45
· Личное сообщение · #29

g-l-u-k

.386
.model flat, stdcall
option casemap :none ; case sensitive

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
Alloc dd ?
OLDProtect dd 02040001h
msgTitle db "Execution status:",0h
msgText1 db "No debugger detected!",0h
msgText2 db "Debugger detected!",0h
.code

start:

; MASM32 antiOlly example
; coded by ap0x
; Reversing Labs: ap0x.headcoders.net

; The idea is simple. OllyDBG interprets PAGE_GUARD as a
; Memory break-point. If we set SEH and execute PAGE_GUARDed
; code exception will occure. If debugger is present it
; will execute MemBpx and continue executing code after it.
; If debugger is not present handleing will be forwarded to SEH.

; Setup SEH

ASSUME FS:NOTHING
PUSH offset @Check
PUSH FS:[0]
MOV FS:[0],ESP

; Allocate new space

PUSH PAGE_READWRITE
PUSH MEM_COMMIT
PUSH 10000h
PUSH 0
CALL VirtualAlloc

; Write RET there
MOV BYTE PTR[EAX],0C3h
MOV DWORD PTR[Alloc],EAX

; Place Memory break-point
PUSH offset OLDProtect
PUSH PAGE_EXECUTE_READ OR PAGE_GUARD
PUSH 00000010h
PUSH EAX
CALL VirtualProtect

; Execute
CALL [Alloc]

PUSH 30h
PUSH offset msgTitle
PUSH offset msgText2
PUSH 0
CALL MessageBox

PUSH 0
CALL ExitProcess

; SEH handler
@Check:
POP FS:[0]
ADD ESP,4

PUSH 40h
PUSH offset msgTitle
PUSH offset msgText1
PUSH 0
CALL MessageBox

PUSH 0
CALL ExitProcess

end start

Такое пойдет?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 августа 2008 13:48 · Поправил: progopis
· Личное сообщение · #30

g-l-u-k
Надо играться с API работающими с памятью. Насколько я знаю, OllyDbg для установки memory breakpoint закрывает доступ на целую страницу памяти, а когда наступает момент обращения - происходит исключение, обработкой которого она занимается . Если отловить момент когда бряк стоит, то API вернет "неправильный" параметр доступа к памяти (по-моему VirtualQuery или VirtualQueryEx надо для этого использовать). Еще бывают хардовые бряки на память - делаем исключение, а в обработчике зануляем DrX-регистры - и все - бряка нет.

Когда доделаю "AntiSoftICE project" - можно будет считать доком его исходник.

Sturgeon
+1



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 августа 2008 13:57
· Личное сообщение · #31

Кстати, народ!
А кто-нибудь знает как SoftICE обходит call'ы, если мы идём по F10 (trace over)?

А то OllyDbg ставит 0xCC сразу после call'а; IDA пропускает несколько команд, действие которых можно отменить - и там ставит бряк, а потом откатывает регистры до команды сразу после call'а. А вот SoftiCE никаких там 0xCC вроде бы не ставит (в call'е проверял CRC). Неужели Hardware-бряк? А если я их все задействовал?


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


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