anti debugging
-
hi leute ich will meine shareware vor debuggern schützen.
habt ihr da irgendwelche links, tipps für mich ???
danke
-
Eventuell hilft es, die EXE-Datei durch eine Kompression (wie z.B. UPX) zu schützen oder zu verschlüsseln.
Edit:
Ja, klar meinte ich UPX...
-
TomasRiker meint sicherlich UPX (upx.sf.net), UPS ist ein Paketdienst
Naja, noch ein guter Schutz ist es, zu überprüfen ob einer der Debugger überhaupt läuft. So simpel es klingt, aber wenn die Shareware sich weigert bei eingeschaltetem Debugger zu laufen kann man nix debuggen.. naja, oder so, du weißt was ich meine
-
TomasRiker meint wahrscheinlich die geheimen EXE-Codes.
-
wieso sollte das helfen? Im Endeffekt entpackt ja UPX das Binary in den Speicher, dort wo der Debugger das ausliest.
Was einige Shareware macht ist, nach laufenden Debuggern zu gucken, weiss nur nicht ob die gucken koennen ob das Debug-Flag gesetzt ist oder aehnliches oder einfach nur gucken ob irgend ein Prozess "GDB" oder "SoiftICE" heisst. Letzteres waere ja nicht wirklich schwer zu ueberwinden.
-
#include <windows.h> HANDLE (WINAPI *IsDebug)(VOID); DWORD WINAPI check(LPVOID p){ while(1){ HINSTANCE hwn; bool dbg; hwn = LoadLibrary("KERNEL32.DLL"); if (hwn == NULL) { MessageBox(NULL,"Error loading Kernel32.dll","Debug",MB_OK|MB_ICONSTOP); ExitProcess(0); } IsDebug = (HANDLE (WINAPI *)(void))GetProcAddress(hwn,"IsDebuggerPresent"); dbg=IsDebug(); if(dbg!=0) MessageBox(NULL,"Debugger detected !","Debug",MB_OK|MB_ICONINFORMATION); Sleep(20); } } int main() { DWORD a; CreateThread(NULL, 0, check, 0, 0, &a); Sleep(200000); }
weiss jemand von euch ob diesr code was is ??oder kann den ein cracker überwinden???
(ich dachte mir einfach wenn ein debugger attached wird dann soll er die maschine rebooten)
-
http://www.s-a-ve.com/faq/Anti-Cracking-Tips-1.txt
http://www.s-a-ve.com/faq/Anti-Cracking-Tips-2.htm
http://www.s-a-ve.com/faq/EXE-Packer_ASPACK.txt
http://www.jrsoftware.org/striprlc.htm#execomp