中有较全面而系统的基本和常用的汇编功能段的阐述,熟读并理解
记忆后,你再多做练习和总结,相信士别三日当刮目相看。
举例
小写转大写的程序段:
00401126|.0FBE8C0544FF>movsxecx,byteptr[ebp+eax-BC];用户名
0040112E|.83F961cmpecx,61
00401131|.7C07jlshort0040113A;不是大写就转换成大写
00401133|.90nop
00401134|.90nop
00401135|.90nop
00401136|.90nop
00401137|.83E920subecx,20
0040113A|>8BF1movesi,ecx
2.人门者最好学一门编程语言。自己编程一段单一的功能,自己反汇编研究,
不断的总结、记忆和积累。
推荐一位破解模范的痴情之作:
{
【原创】菜鸟看懂算法以后之一:头痛的64次左移
--------------------------------------------------------------------------------
标题:【原创】菜鸟看懂算法以后之一:头痛的64次左移
作者:jney2
时间:2005-04-22,13:07
链接:?t=13072
菜鸟看懂算法以后之一:头痛的64次左移
}
好了,关于算法分析的要点和难点、相应的学习提高方法基本介绍差不多了。
第十八章关键CALL的被调用情况分析方法
对于这个软件,我再进入关键CALL,进行简要的分析。
首先,我们要了解此关键CALL的调用情况。
OD的方法:
004262FC>/$5>pushebp
信息窗口:
本地调用来自00426B07,_TForm3_suiButton2Click+0DF
001.sub_4262FC
004262FD|.8>movebp,esp
004262FF|.8>addesp,-90
00426305|.5>pushesi
00426306|.5>pushedi
00426307|.B>moveax,00523D88
0042630C|.E>call<@__InitExceptBlockLDTC>
发现有两处调用:
IDA的方法:
或者直接快捷键X:
原来这个软件是注册验证和重新启动程序两次验证。
第十九章加MAP后的OD关键CALL代码
注册码的符合条件判断段,也是算法分析的关键处:
004262FC>/$5>pushebp
004262FD|.8>movebp,esp
004262FF|.8>addesp,-90
00426305|.5>pushesi
00426306|.5>pushedi
00426307|.B>moveax,00523D88
0042630C|.E>call<@__InitExceptBlockLDTC>
00426311|.C>movdwordptr[ebp-C],1
00426318|.8>leaedx,dwordptr[ebp+8]
0042631B|.8>leaeax,dwordptr[ebp+8]
0042631E|.E>call<System::AnsiString::AnsiString(>
00426323|.F>incdwordptr[ebp-C]
00426326|.6>movwordptr[ebp-18],8
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32335-20.html
哪个项目有钱赚
最基本的汽车都造不出来
造谣