0042657F|.3>|xoreax,ecx
00426581|.5>|pusheax;/Arg1
00426582|.E>|call<sub_40E1E4>;\001.0040E1E4
00426587|.5>|popecx
00426588|.B>|movecx,1A
0042658D|.9>|cdq
0042658E|.F>|idivecx
00426590|.8>|addedx,41
00426593|.8>|moveax,dwordptr[ebp-38]
00426596|.0>|movsxeax,byteptr[ebp+eax-64]
0042659B|.3>|cmpedx,eax
0042659D|.7>|jeshort<loc_4265A5>
0042659F|.C>|movbyteptr[ebp-29],0
004265A3|.E>|jmpshort<loc_4265AE>
004265A5>|>F>|incdwordptr[ebp-38]
004265A8|.8>|cmpdwordptr[ebp-38],28
004265AC|.^7>\jlshort<loc_426564>
004265AE>|>0>movsxedx,byteptr[ebp-5A]
004265B2|.8>cmpedx,59
004265B5|.7>jeshort<loc_4265BB>
004265B7|.C>movbyteptr[ebp-29],0
004265BB>|>8>moval,byteptr[ebp-29]
004265BE|.5>pusheax
004265BF|.F>decdwordptr[ebp-C]
004265C2|.8>leaeax,dwordptr[ebp+8]
004265C5|.B>movedx,2
004265CA|.E>call<sub_509664>
004265CF|.5>popeax
004265D0|.8>movedx,dwordptr[ebp-28]
004265D3|.6>movdwordptrfs:[0],edx
004265DA>|>5>popedi
004265DB|.5>popesi
004265DC|.8>movesp,ebp
004265DE|.5>popebp
004265DF\.C>retn
第二十章关键CALL的功能模块简要分析
静态汇编后,粗粗看一遍,大致的理解是单线程、顺序判断结构,
程序的流程很简单,明码比较和暗码比较相交错:
1.注册码的长度限制条件:
00426369|.E>call<System::AnsiString::Length(void>
0042636E|.8>cmpeax,2C
00426371|.0>jnz<loc_4265BB>
2.参与算法分析的关键常量的赋值处:
00426377|.B>movesi,005237CA;ASCII"1z1h+2a0n-0g8y*9a1n|"
判断常量的依据:
3.四位相连的明码比较。后来经过动态调试证实是最后四位。
00426390|.E>call<System::AnsiString::c_str(void)>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32335-25.html
我想说
如果他要耍赖
Loveis4WallsMirrormirror#fx_4walls##fx全新回归#