系统美化专家12.9.9.0的破解分析(菜鸟,不完全)
本帖最后由 今夕望月 于 2011-2-28 18:00 编辑软件下载地址:http://www.skycn.com/soft/24631.html
软件名称:系统美化专家12.9.9.0
工具:peid,od
首先PE查下壳ASPack 2.1 ,表示无压力啊。。直接esp定律脱了去了
再看看是delphi写的,调用DEDE找到注册按钮的事件,在 00617614下断。
这样程序注册的时候就直接可以断下来了。。
程序用试用30次的限制,不过我没有去找爆破,也怪本人能力不够啊,爆破了还要处理注册版本的问题,注册表中也没有找到相应的记录,纠结。。
00617614 .55 PUSH EBP程序断在这里
00617615 .8BEC MOV EBP,ESP
........
0061764C .8B45 F8 MOV EAX,DWORD PTR SS: ;出现用户名
...
00617672 .E8 85ADE5FF CALL 123.004723FC
00617677 .8B45 F0 MOV EAX,DWORD PTR SS: ;出现注册码
0061767A .8D55 F4 LEA EDX,DWORD PTR SS:
0061767D .E8 D61DDFFF CALL 123.00409458 ; F7跟入
.........
00617694 > \8BC3 MOV EAX,EBX ;到此没什么变化
00617696 .E8 C9020000 CALL 123.00617964 ;关键call
0061769B .84C0 TEST AL,AL
0061769D .74 09 JE SHORT 123.006176A8 ;这里会跳走就失败了
0061769F .8BC3 MOV EAX,EBX
006176A1 .E8 6E000000 CALL 123.00617714 ;此处就直接跳成功了 要找上面的call
...................................
往下面翻翻 ,就找到注册成功了 。。
0061776C . /EB 40 JlE SHORT 123.006177AE ;关键跳? 一系列nop到这里了 想办法跳了
0061776E . |BE 01000000 MOV ESI,1
00617773 > |8D45 F0 LEA EAX,DWORD PTR SS:
00617776 . |50 PUSH EAX
00617777 . |B9 01000000 MOV ECX,1
。。。。。。。。。。。。。。。
跳到这里 但其实要到这里来必须是进入子程序的,
006176A1 .E8 6E000000 CALL 123.00617714 ;此处就直接跳成功了 要找上面的call
就这句跳到上面有跳转那里
006177F8 .E8 03C3DEFF CALL 123.00403B00
006177FD .8D45 F8 LEA EAX,DWORD PTR SS:
00617800 .BA F8786100 MOV EDX,123.006178F8 ;恭喜!软件注册成功!
00617805 .E8 C2D1DEFF CALL 123.004049CC
0061780A .6A 40 PUSH 40
0061780C .B9 10796100 MOV ECX,123.00617910 ;完成功能
00617811 .BA 1C796100 MOV EDX,123.0061791C ;恭喜!软件注册成功!
00617816 .A1 D4076700 MOV EAX,DWORD PTR DS:
0061781B .8B00 MOV EAX,DWORD PTR DS:
0061781D .E8 36B0E7FF CALL 123.00492858
00617822 .6A 40 PUSH 40
00617824 .B9 10796100 MOV ECX,123.00617910 ;完成功能
00617829 .BA 34796100 MOV EDX,123.00617934 ;密码已经成功清除,下次进入不需要输入密码了!
0061782E .A1 D4076700 MOV EAX,DWORD PTR DS:
。。。。。。。。。。。。。。。。。继续分析算法吧
F7跟入那个 call 翻一下 找到关键
006179CC .8A00 MOV AL,BYTE PTR DS: ;取用户名第一个字母 关键算法 向上找到eax的来源 估计是自动调位吧
006179CE .25 FF000000 AND EAX,0FF ;取eax后两位 即当前取的字符的ascii值的16进制
006179D3 .03D8 ADD EBX,EAX ;加到ebx
006179D5 .81F3 05FA0B00 XOR EBX,0BFA05 ;xor运算
006179DB .FF45 F0 INC DWORD PTR SS: ;已处理位数
006179DE .4E DEC ESI ;未处理位数减一
006179DF .^ 75 CF JNZ SHORT 123.006179B0 ;循环处理
006179E1 > \A1 30E86700 MOV EAX,DWORD PTR DS: ;这里DS:=00657964 是个常量,也许机器不同会不同
006179E6 .8BD0 MOV EDX,EAX
006179E8 .C1E0 04 SHL EAX,4 ;乘16
006179EB .03C2 ADD EAX,EDX
006179ED .03D8 ADD EBX,EAX
006179EF .81C3 D4A31300 ADD EBX,13A3D4 ;用户名计算完毕
...........
注册码的算法还没怎么分析的透。。反正如果输入的十进制数,会返回到eax,没做什么变化其他分情况很烦人。。
。。。。下面
00617A1C|.3BC6 CMP EAX,ESI ;比较什么?esi 用户名的结果和注册码的结果比较,不同就失败了 eax=0f015338
00617A1E|.75 19 JNZ SHORT 123.00617A39 ;JNZ SHORT 00617A39 nop 下 就可以成功 跳走就完蛋
。.......
到这里也就凑活下吧,本人水平也就到这里了。。
00617A1C|.3BC6 CMP EAX,ESI ;这里把esi的值抄下,转换成十进制就是注册码了,写个内存注册机什么的应该好使。
不过最大的问题是,软件注册成功了,依旧提示是未注册版本。。。这个纠结了。。以后会了再搞吧。
烂帖一个,。。
鼓励一下了,现在很少人主动发交流贴了
00617964 这个CALL直接返回一个真值,估计就爆破成功了 我看看。。 回复 lkou 的帖子
不过话说我不会改CALL的返回值这种爆破啊
0064C710 弹出用户未注册的窗口,但是找不到附近的关键跳。。如果断在上面一点的话就是点击菜单都会断下来 {:1_907:}其实这个软件网上流传的是一个功能不全的版本,怎么破解都是无法注册的。 回复 ayus 的帖子
原来如此。。。。 回复 今夕望月 的帖子
如果你希望研究一下正版的话我可以发给你一份, 话说这是我第一个支持的正版软件。 回复 ayus 的帖子
真的啊?那thank you 了,
yy251745080@126.com
页:
[1]
2