Codigo anti-debugging?

Iniciado por katanaia, 21 Agosto 2008, 16:37 PM

0 Miembros y 1 Visitante están viendo este tema.

katanaia

Tengo una duda, se puede con codigo VB evitar que OllyDbg meta sus narices en nuestros programas? He visto codigo anti-sandbox y anti-vm pero no de este tipo, al menos en VB.

Mad Antrax

Sí, se puede.

Evidentemente los códigos anti-olly en VB no son tan efectivos como los programados en ASM o C, pero se puede hacer algo...

Cuando llegue a España (ahora estoy en mexico de vacaciones) te posteo un ejemplo. Saludos!!
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Spider-Net

Puedes usar la api IsDebuggerPresent aunque no creo que sirva de mucho. Es muy fácil saltarse esa protección con el ollydbg, es más olly incluye plugins que se saltan automáticamente los anti-debuggers así que no sé si te servirá de mucho algo así... Puede servirte para alguien que no tenga mucha idea de ingeniería inversa, pero con unos cuantos de conocimientos es fácil saltarse las protecciones anti-debug...

Saludos!

krackwar

Cita de: katanaia en 21 Agosto 2008, 16:37 PM
Tengo una duda, se puede con codigo VB evitar que OllyDbg meta sus narices en nuestros programas? He visto codigo anti-sandbox y anti-vm pero no de este tipo, al menos en VB.

Un ejemplo con la api en asm

Se puede en ASM tambien comparando el registro esi pero creo que esto en vb no se puede. Aunque otro metodo habra para hacerlo en vb.
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

katanaia

Gracias por los aportes. La api que menciona Spider-Net no la conocia y es mas o menos lo que estaba buscando. Algo sencillo que sea una traba para alguien que no tenga mucha idea de cracking, para el que sabe seguro que tiene los plugins esos del OllyDbg o algo parecido y me lo analiza igual... pero bueno, la intención es no dejarle todo en bandeja servido al maldito fisgón. :P

apuromafo CLS

#5
pues llevo mas de 3 años con ollydbg y quien podria resolverte esa pregunta seria RDG max

creo que integro como 40 codigos antidebug y es bien buena onda para poder hacer posible

ahora bien mis consejos en forma personal
no hay proteccion irrompible

pero te doy algunas apis de referencia

isdebuggerpresent ->solo necesita valer 0 para pasar inadvertido
outputdebugstringA como INT ->necesita 0 para pasar inadvertido
outputdebugstringA como variable->necesita 1 para pasar inadvertido
CreatefileA->necesita un valor ff o diferentes para poder verificar
processCRs o variantes para que vea si tiene privilegios para la ejecucion
CitarPublic Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long


las exepciones de int 2e no se ejecutan en windows vista, por eso no es posible crear antidebug con eso, ademas eso es motivo de que no exista muchas variables para impresoras o programas en windows vista

etc
creo que con la experiencia que tengo con olly pasaria minimo unos 50 antidebug y seria capaz de correrlo
por lo tanto te animo a revisar las referencias antidebug

saludos en buena
Apuromafo