Windows Binary Exploitation筆記

使用工具 VM 分析工具 : PEBear, DLL Export Viewer 組語除錯工具 : WinREPL C++ ROP Gadget : rp++ Debugger : x64dbg, Windbg Preview Windbg操作 | : Process Status ~ : Thread Status 顯示記憶體內容 : d{b|d|q|u} + Ln (顯示N個) 以某種資料結構解讀 : dt (module)!_name + rn (recursive) 對記憶體寫入 : 數值e{b|d|q}, 字串e{a|u|za|zu} (z : 指以NULL做結尾) 暫存器 : r, r [reg] = [val] 取值 : poi 反組譯 : u, uf 斷點 : bp [addr] .if [cond]{} .else{gc} 列出載入的模組 : lm 執行 : go, Step in : t, Step over : p Mapping : !address 查看權限 : !vprot 查看Error Code : !error Value [Flags], Flags=Win32, NTSTATUS… 查看Symbol : x module!symbol 呼叫慣例 流程控制 : call / ret 參數 : 使用 CX, DX, R8, R9, stack Prologue, Epilogue : 保存/恢復上一個frame的RBP Buffer Overflow 列舉一些危險的函數 ...

November 22, 2024 · 2 min

組合語言期中筆記

Assembly Language Low level Mnemonics, Label 用以表示CPU指令 組譯(assemble)成CPU指令 Instruction set design Register Data Bus / Address Bus Operation / Operand counts Literal value Flow control CISC / RISC Addressing mode Direct ldr r0, MEM Immediate mov r0, #1 Register direct mov r0, r1 Register indirect ldr r0, [r1, #4] (pre-indexed) ldr r0, [r1, #4]! (auto-indexed) ldr r0, [r1], #4 (post-index, auto post-increment) ldr r0, [r1, r2 LSL #2] (with scaling) PC relative ldr r0, [PC, #offset] System software Assembler Directive 以".“作為開頭 Pseudo instruction : Alias 轉換mnemonics, label以及literal Relocation 相對位址 Building of GNU Build給amd64, target=arm Segments 參見 ELF cheatsheet .text : code, r-x .data : data, rw- / r-- (rodata/rdata) .bss : uninitialized data, rw- NX bit ARM architecture 採用RISC ...

November 14, 2024 · 2 min