Rainbow逆向工程学习记录第一辑-反编译形态初认识-分支结构
本帖最后由 枕梦夜谈 于 2021-5-15 09:30 编辑最近开始整理之前做逆向工程时的学习记录。
首先是反编译形态初认识-分支结构。
If结构:
源代码:
反编译形态:
伪代码:
If-else双路结构:
源代码:
反编译形态:
伪代码:
If-else多路结构:
源代码:
反编译形态:
伪代码:
上图可以看到在条件判断语句中,汇编代码通过cmp、test等比较语句进行条件的判断,然后通过jmp、jle、jns等跳转语句进行流程跳转。
图中伪代码部分可以看出,除变量名称外,伪代码和源代码竟然非常接近甚至一模一样。
If-else多路结构中伪代码结构并非和源代码一样,而是嵌套形式的双路结构,这是因为程序在编译后是不可逆的,并不能恢复成初始状态。
switch结构(swich.cpp):
源代码:
反编译形态:
伪代码:
从图中可以看出switch在底层实现上是与ifelse语句相同的。 看下这个学习下怎么贴图:https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&messageid=36 Hmily 发表于 2021-5-13 11:31
看下这个学习下怎么贴图:https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&messageid=36
好嘞!谢谢H大指点! 枕梦夜谈 发表于 2021-5-15 09:23
好嘞!谢谢H大指点!
然后把这个帖子编辑下吧,不要看起来太别扭了。 Hmily 发表于 2021-5-15 09:28
然后把这个帖子编辑下吧,不要看起来太别扭了。
编辑好了!我就是那天发帖的时候提交,完了以后,看到待审核,又改不了格式了,就很难受{:1_937:} 枕梦夜谈 发表于 2021-5-15 09:31
编辑好了!我就是那天发帖的时候提交,完了以后,看到待审核,又改不了格式了,就很难受
ok,正常了。
抱歉,从安全考虑,新人发帖都需要审核,多发一些就不需要了。 Hmily 发表于 2021-5-15 09:37
ok,正常了。
抱歉,从安全考虑,新人发帖都需要审核,多发一些就不需要了。
{:1_932:}嗯嗯,审核会好一点,免得出问题影响论坛 鼓励转贴优秀软件安全工具和文档! 正在学习OD,希望能早日入门。
页:
[1]