I/O与逆向


I/O与逆向


刚进大学学pascal时候就知道了input,output。可以说自从有了冯诺伊曼,就有了I/O。据说有老冯的思想并不能包含计算机界的全部,但我想别的冯xx架构计算机应该也有I/O。

I/O跟逆向有啥关系呢?这要从头说起。

我想很多人开始看反汇编代码都有个疑惑,那就是那么多反汇编代码,要从哪里开始看?看到哪里?中间那么多代码,都要一句一句看么?

我经常想,如果哪天给我一堆汇编代码,我不知道从何开始,到何结束,中间n多意大利面条一样的代码,我该怎么去分析呢?

这3个疑问,伴随了不少人的成长。直至昨天,我还为这个问题而发愁,直至我理解了冯诺伊曼的I/O以前,我还为此担忧。

逆向分析从Input开始,到Output结束。

这里的Input并不单单是键盘鼠标输入,Output也不单单是显示器或者音响,这是一个分析概念。

比如分析网络软件,我们的I/O可以理解为网络数据以及相关函数。文件处理软件,我们以文件操作函数为操作节点。

对于n多反汇编代码,怎么从中去粗提精呢?可以理解为汇编代码的操作数来源于内存,归结于内存,因此,我们粗略分析时候,可以住要关心对内存的操作,忽略寄存器之间的数值运算。

比如:
     mov eax, [esi]
     add eax, eax
     inc eax
     mov [edi], eax

对于这样的数据,我们粗略分析时候,可以只关心内存的变化,而忽略中间的操作。只要抓住了I([esi])/O([edi]),分析起来就简单的多了。

这样一来,分析时候如果能找到合适的I/O,就大体确定了分析起点和终点,分析中也可以利用这个道理,尽量缩短分析流程。

会不会不存在这种I/O呢?答案是否定的,因为我们都跟冯诺伊曼过活。
会不会找不到这种I/O呢?答案是不定的,因为这取决于个人能力。

注:我很笨,对于自己所走的路,头脑里总会有一些不解,时间长了,也就找到了答案。还记得当初花半个月搞懂重定位原理,搞了半年才知道内存里结构是什么样子。这些东西对于高手来说都是很平常的,但我花很长时间自己体验出来,总是有些兴奋。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值