逆向时让大模型帮忙读汇编,几个实测好用的提问方式
逆向做到so层,最耗时间的是读汇编。IDA的F5好看很多,但碰到OLLVM混淆过的,伪代码也是一团乱。最近半年我习惯把关键函数丢给大模型一起看,效率确实上来了,但提问方式很重要。直接贴一屏汇编问这是干什么的,答案基本没法用。我的做法是分步给上下文:先告诉模型这是什么架构、什么调用约定、哪个是参数寄存器;再贴函数头几行,让它先判断函数签名;然后只贴核心循环那几十行,问寄存器的数据流。有个实测经验是让它逐行标注每条指令执行后各寄存器的含义,比让它直接总结功能准得多,因为标注没法凭空编。
另一个好用的方式是问等价的高层代码,让它用C改写这段逻辑,然后你拿去和F5的结果对,两边对不上的地方往往就是混淆或者你理解错的地方。模型的局限也明显,长函数容易胡编分支条件;加密算法常量倒是很灵,一看0x67452301这种就报MD5了。总之当个不要钱的实习生用,别当师傅。
https://www.metk.cn/img/posts/llm_assist_reverse_assembly_01.jpg
页:
[1]