S
Termite schrieb:
Sinn und zweck einer debugger erkennung ist doch sicherlich, zu verhindern, das sein program gedebuggt wird. bzw analysiert wird ( hat er glaubich auch andeuten wollem mit "... aber von irgendetwas muss auch ich schließlich leben ..." ) Und einen Debugger zu erkennen kann mitunter nicht immer einfach sein. Einfach nur zu Prüfen ob Int3 funktioniert, verdächtige Prozesso laufen, ... ist nicht alles (z.B. Kerneldebuger)
Klar, du hast aber in deinem vorigen Beitrag nur von einer VM gesprochen Anyway, ein Packer ist das A und O, aber solange man kein Skype-Budget hat muss man leider auf billige Packer zurückgreifen (welche oft keine VM haben) und so kann man zur Laufzeit einfach den originalen Code herausfinden, wenn man den Debugger nach dem entpacken und den Debug-checks des Packers anhängt. Daher, um dies zu verhindern, muss man eine mehr oder weniger uuverlässige Debugger detection coden, und dies kann man nicht einfach durch checken der checksums der Sections herausbekommen (HW breakpoints sind unsichtbar!). Das einzige was im ring3 einigermaßen klappt ist wiegesagt self-debugging oder ein manuelles Zurücksetzen der Debugregister.
PS: Ring0 debugger detection bei Ring3-Programmen ist reichlich dämlich