CTF reverse/pwn入门记录

好吧,今天正式入坑CTF的reverse和pwn了,当然先从reverse开始入手。

先是写一下buuctf的writeup和一些ida的技巧

一个是显示二进制编码
显示中文
导出数据
显示动态字符串
处理反编译失败

显示二进制编码:
image
那个number of opcode bytes改成8或者4啥的就能直接同时显示汇编代码和原始二进制,方便很多

导出数据:

edit里面有个export data,可以选c的数组格式,这样不用复制了
image

image

显示动态字符串(默认ida只显示常量字符串)

image

image
把play only constant string literals去掉

反编译代码按r能把十六进制/十进制数转成字符串

按h能十进制十六进制互相转换

处理反编译失败:
想办法显示栈,看看是不是栈不平衡

显示栈帧:
image

勾选stack pointer

然后如果他反复调用自己比如call xxx,那么会一直入栈,破坏堆栈平衡,分析后可以注释掉或者修改

然后如果有mprotect/virtualprotect说明程序修改自己
遇到upx啥的说明加壳了,可以用脱壳机试一试。
动态调试:
开始调试之后按f9执行一轮直到断点,按f7是单步执行

待整理rc4 tea aes加密的形式
vmp脱壳
花指令
混淆
反动态调试

pwn上主要是看看怎么绕canary 还有各种例题
格式化字符串也是

重新分析一段程序:
image
按alt+l可以设置起始点然后往后直接单击就可以选中一大段
另外底下右下角单击可以显示reanalyze the program重分析整个程序,主要用于一些字符串的引用的更新

posted @ 2025-11-21 19:46  hicode002  阅读(7)  评论(0)    收藏  举报