Reverse
寫的code
組合語言
object code
exe
compiler
assembler
linker
decompiler
(僅邏輯一樣)
disassembler
(完整還原)
丟給O(rz)S處理
怎麼放到記憶體、進入點...
VA? PA? RVA?
entry point = RVA + imagebase
ASLR?
Ghidra
gdb
PE-Bear
x64dbg
當你有source code...
crackme-py
裝完Ghidra可以來寫寫
一些基本操作
example.exe
G 要去的記憶體位置
alt 左鍵 回上個函式
L 函式改名
找字串 search->for string
...
BabyAssembly
在DC :P
練習
暫存器
資料視窗
stack
反編譯
一些指令
mov
add
sub
mul
div
call
ret
jmp
mov 目的地,來源
ex: mov rax(暫存器),0
if
cmp
je / jne
jz / jnz
jge / jle
for
有往回跳的if
array / struct
mov dword ptr[暫存器+0x20],0x1
全域變數 / 區域變數
直接寫到記憶體 / 用暫存器相對去存
動態分析
靜態分析
直接跑起來
人腦CPU
題目
reverse_cipher
By richardliang