Name a Disassembler / Debugger?
Disassembler: IDApro, GHIDRA
Debugger: OllyDbg, x64dbg
Name the types of debugger?
What is debugging?
Debugging malware is analyzing the behavior of an unknown malicious program. Be able to break in and stop code. Be able to get the current values of all the registers, memory, stack ,etc.
What are the three most important debug functions of Windows Debug API?
DebugActiveProcess() - Attach to existing process
WaitForDebugEvent() - Wait for debug event to occur in debuggee process
DebugBreakProcess() - Break into running debuggee process
There are two main ways of exception handling?
The VEH checks each of the exeption types it knows how to handle. If all of these don’t work, control is handed back to the SEH and we continue as normal.
What are the five breakpoint types?
Why Debugging Malware?
Name a few Anti-Debugging tricks?
Name a few Anti-Anti-Debugging tricks?
What is the difference between Software and Hardware breakkpoints?
In general, breakpoints allow you to just stop at the interesting code.
SWBP: Adds INT3 to memory to raise interrupt. ++ No limit to number of breakpoints. – Modifies code, only for execution but not reads/writes to memory.
HWBP: via Debug registers. ++ no modification of code. Breaks on read/write/execution. – limited number (4), debugee process can alter breakpoints registers.
What two APIs are used to read/write to the processes virtual memory?
What is the initial breakpoint and what three options are available?
Point when debugger first gains access.
For Entry Point / WinMain: application code can run first.