0%

[SWPUCTF 2023 秋季新生赛]Junk Code WP

2025-11-05 10:05By
YouDiscovered1t
花指令XOR逆向技术

Problem: [SWPUCTF 2023 秋季新生赛]Junk Code

思路

NSSIMAGE

花指令,两种方法解决:

  • 动态调试(最方便)
  • 逐个NOP(或者使用 IDA Python 批量化处理)

EXP

一、动态调试

在 main 函数处下断点:

NSSIMAGE

开始动态调试,不断地用 f8 步进,遇到:

NSSIMAGE

的时候,就是遇到花指令的部分了,反编译器成功被骗到(觉得这是出现错误了),但是 CPU 执行的是程序本身,它可不会被骗。

因此,只要我们点 yes,那么调试就会继续跟着程序往后走,也就顺带绕过了花指令。

此时,如果我们切换到 C 语言代码,可以发现,一部分的程序已经恢复出来了:

NSSIMAGE

后面就是不断地重复,直到程序的全部代码都出来了就可以了,不再赘述。

二、Nop绕过

本题用的是无条件跳转类型的花指令,即我们只要让 jmp 失效就好了,因此想到 Nop 指令。

jmp 的机器码为 E9

NSSIMAGE

这个看不到的,点“OptionsGeneralDisassemblyNumber of opcode bytes”,将值设置成 4 或者更多即可。

点“EditPatch programechange bytes”

E9 改成 90 就好了:

NSSIMAGE

NSSIMAGE

此时就能看到部分代码了,后同,不再赘述。

NSSIMAGE

总结

  • 花指令
  • 花指令的绕过
  • 代码审计
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论