圆点变黄了。
圆点又变红了。
红线内的数值不断变化,说明IDA正在分析,耐心等待。许多初学者想使用IDA的流程图
功能,却发现迟迟不见流程图的出现,最常见的原因就是IDA没有分析完毕。较大或复杂
的软件往往要分析一天以上,具体时间由程序的复杂度和你计算机的性能决定。耐心等吧,
喜欢它就要包容它的缺点。与同事、朋友共处或谈恋爱一样,既要追求完美,又要承认、
包容缺陷。
分析完毕的圆点颜色:
IDA程序代码显示全景:
放大流程图:
很直观的流程,两个程序大分支,其中一个又有两个小分支。
右键,反汇编代码视图和图形视图切换:
按G,跳转到指定地址(6564FE):
.xtzy:006564FE
.xtzy:006564FEloc_6564FE:;CODEXREF:start+4F3_j
.xtzy:006564FEpush0
.xtzy:00656503retn
.xtzy:00656503startendp
直接OD设断:
xtzy:00656503retn
哈哈,一步就到了入口点。IDA是脱猛壳的利器。
娱乐花絮三:
泡妞秘籍3:一份优厚的工作是泡妞的催化剂。
第五章一段简单壳代码的动态分析
IDA中按G,跳转到指定地址(6564FE):
.xtzy:006564FE
.xtzy:006564FEloc_6564FE:;CODEXREF:start+4F3_j
.xtzy:006564FEpush0
.xtzy:00656503retn
.xtzy:00656503startendp
与OD动态跟踪运行至此的对比:
006564FE\6818164000push00401618
00656503C3retn
发现了吗?push后的数值是不一样的。这是为什么呢?IDA的静态分析不容易回答
这个问题。用OD动态调试很容易来解答。高手就不要凑热闹了。
OD,CTRL+F2->CTRL+Sà输入:
push0
retn
CTRL+F2,设内存写入断点:
006564FE6800000000push0
F9,停在:
006564ED89857B2E4400movdwordptr[ebp+442E7B],eax;Pic2Ico.00401618
006564F361popad
006564F47508jnzshort006564FE
006564F6B801000000moveax,1
006564FBC20C00retn0C
006564FE6800000000push0
00656503C3retn
看到了吗?数值没变呢。
006564FE6800000000push0
F8单步一下,
006564F361popad
006564F47508jnzshort006564FE
006564F6B801000000moveax,1
006564FBC20C00retn0C
006564FE6818164000push00401618
00656503C3retn
明白了吗?eax的值怎么来的,向上看:
006564DD8B854E2A4400moveax,dwordptr[ebp+442A4E]
006564E350pusheax
006564E40385E0374400addeax,dwordptr[ebp+4437E0]
006564EA59popecx
006564EB0BC9orecx,ecx
006564ED89857B2E4400movdwordptr[ebp+442E7B],eax
006564F361popad
006564F47508jnzshort006564FE
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32335-4.html
这是必须的
抗日得时候多少人抵制日货又能怎么样
超级棒