南阳网站seo推广公司,电子商务网站建设的核心多选,北京市建设教育协会网站查询系统,阿里巴巴做国际网站多少钱1. 概述
在一般的软件中#xff0c;我们逆向分析时候通常都不能直接看到软件的明文源代码#xff0c;或多或少存在着混淆对抗的操作。下面#xff0c;我会实践操作一个例子从无从下手到攻破目标。
花指令对抗虚函数表RC4
2. 实战-donntyousee 题目载体为具有漏洞的小型软…1. 概述
在一般的软件中我们逆向分析时候通常都不能直接看到软件的明文源代码或多或少存在着混淆对抗的操作。下面我会实践操作一个例子从无从下手到攻破目标。
花指令对抗虚函数表RC4
2. 实战-donntyousee 题目载体为具有漏洞的小型软件部分题目提供源代码要求攻击者发现并攻击软件中存在的漏洞。 2.1 程序测试
首先拿到这道题目,查壳看架构,elf64 放到虚拟机中运行一下 plz input your flag
8888888888888
wrongida64反编译发现软件进行了去符号处理最直白就是没有main()函数。
但是ida自动帮我们定位到了系统入口函数start()。 然后我们查字符串 plz、wrong均无法查到相关字符串 可见程序对静态分析做了很大的操作防止一眼顶真。
然后我们回到系统入口函数startF5反编译。
帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS
程序无法完全反编译并且发现init和fini均无法正常识别。 进入main函数即sub_405559()无可用信息。 2.2 花指令对抗
看汇编 很明显程序做的混淆对抗是加了花指令。 花指令实质就是一串垃圾指令它与程序本身的功能无关并不影响程序本身的逻辑。在软件保护中花指令被作为一种手段来增加静态分析的难度。 花指令关键在于对堆栈变化以及函数调用的操作。强硬的动态调试能力也可以无视花直接en看。
对于此花指令我们只需要将call $5、 retn nop 即可
该软件的每个有用的function都加入了此花指令
E8 00 00 00 00 call $5
C3 retn此时F5反编译,程序明显可读了 2.3 虚函数
我们重命名一下方便理解 可见程序还使用了虚函数重定位的技术。
下面我们进行动态调试具体跟进函数。 F7进入 又发现了花我们nop掉 然后进入下一个函数进行重复的操作 再往下程序结束但是我们并没有看到密文比较的地方。
我们对rc4的两个函数进行交叉引用看哪里调用了他们呢 .data.rel.ro
这个节段是只读数据段的重定位段在链接时重定位里面放的就是我们的虚函数表。
看到下面还有一个sub_405CAA(),我们点击跟进。 至此我们找到了程序的所有逻辑。
2.4 RC4解密
提取密文
25CD54AF511C58D3A84B4F56EC835DD4F6474A6FE073B0A5A8C317815E2BF4F671EA2FFFA8639957 提取密钥
921C2B1FBAFBA2FF07697D77188C rc4_enc()函数还有个 ^23 得解。