rain灿 发表于 2014-10-5 19:56

一个超级简单的cm 简略分析

本帖最后由 rain灿 于 2014-10-5 20:25 编辑

题外话-咱们论坛表情真是酷毙了。。。。

今天要说的是一个cm的简单爆破及分析。

首先。。cm地址   链接: http://pan.baidu.com/s/1i388dHb 密码: wiht (转的52)


要做的任务有:
1、爆破
2、伪造一个key 上传截图
3、分析注册码的流程。




首先先来尝试一下爆破。


先来看看这个cm长啥样子。。
一开始的启动窗口


这搓样我也是醉了。。。

然后主窗口


右下角还有个逆向按钮。。。。
(好像过于详细了。。 那下面就简略点了。。)

然后载入od!
按照恒大教我们的。
右键-中文搜索引擎-搜索ASCII。

查找"注册”
然后在每个段首下断。

最后爆破完应该是这三个修改地方
00402503je 00402544→jmp short 00402544
004029EB jnz 00402A30 →jmp short 00402A30
00402EDD je 00402FB5→nop


爆破不爱多说。
下面开始伪造一个key。
这是断FF55FC5F5E(易语言按钮事件特征码)的效果。。。
启动窗口的事件 发现没用。
然后运行。然后发现又断下了
在进去看下。
.....
00402983    8945 F8         mov dword ptr ss:,eax
00402986    68 17F34A00   push 004AF317                            ; \授权文件.key
0040298B    FF75 F8         push dword ptr ss:
0040298E    B9 02000000   mov ecx,2
00402993    E8 C2FEFFFF   call 0040285A                            ; 连接字符串。。。取运行目录()+"\授权文件.key"
00402998    83C4 08         add esp,8
0040299B    8945 F4         mov dword ptr ss:,eax
0040299E    8B5D F8         mov ebx,dword ptr ss:
....
004029BA    75 05         jnz short 004029C1
004029BC    B8 B2984900   mov eax,004998B2                         ; ā
004029C1    50            push eax
004029C2    68 01000000   push 1
004029C7    BB F0834000   mov ebx,004083F0
004029CC    E8 214E0000   call 004077F2                            ; 判断授权文件.key是否存在。不存在返回0 存在返回1
004029D1    83C4 10         add esp,10
004029D4    8945 F0         mov dword ptr ss:,eax
004029D7    8B5D F4         mov ebx,dword ptr ss:
004029DA    85DB            test ebx,ebx
004029DC    74 09         je short 004029E7
004029DE    53            push ebx
004029DF    E8 FC4D0000   call 004077E0
004029E4    83C4 04         add esp,4
004029E7    837D F0 00      cmp dword ptr ss:,0            ; 返回的值和0比较
004029EB    0F85 3F000000   jnz 00402A30
004029F1    6A 00         push 0
004029F3    68 25F34A00   push 004AF325                            ; 免费用户
004029F8    6A FF         push -1
004029FA    6A 08         push 8
....
00402A73    68 04000080   push 80000004                            ; (下面才是重点,很多人不会伪造key里面的内容。)
00402A78    6A 00         push 0
00402A7A    68 2EF34A00   push 004AF32E                            ; 注册码(节名称)
00402A7F    68 04000080   push 80000004
00402A84    6A 00         push 0
00402A86    68 35F34A00   push 004AF335                            ; 信息(配置项的名字)
00402A8B    68 04000080   push 80000004
00402A90    6A 00         push 0
00402A92    8B45 F4         mov eax,dword ptr ss:
.....
00402B26    74 09         je short 00402B31
00402B28    53            push ebx
00402B29    E8 B24C0000   call 004077E0
00402B2E    83C4 04         add esp,4
00402B31    DD45 F0         fld qword ptr ss:                ; 把机器码112833956压入堆栈
00402B34    DC0D 3AF34A00   fmul qword ptr ds:               ; 在乘上465
00402B3A    DD5D E8         fstp qword ptr ss:
00402B3D    DD45 E8         fld qword ptr ss:
00402B40    E8 4DECFFFF   call 00401792                            ; 得928181988 十六进制是3752EEE4
00402B45    68 01030080   push 80000301
00402B4A    6A 00         push 0
00402B4C    50            push eax
00402B4D    68 01000000   push 1
00402B52    BB C0834000   mov ebx,004083C0
00402B57    E8 964C0000   call 004077F2
00402B5C    83C4 10         add esp,10
00402B5F    8945 E4         mov dword ptr ss:,eax
00402B62    68 01030080   push 80000301
00402B67    6A 00         push 0
00402B69    68 05000000   push 5                  (这个5 就是取的位数)
00402B6E    68 04000080   push 80000004
00402B73    6A 00         push 0
00402B75    8B45 E4         mov eax,dword ptr ss:
00402B78    85C0            test eax,eax
00402B7A    75 05         jnz short 00402B81
00402B7C    B8 B2984900   mov eax,004998B2                         ; ā
00402B81    50            push eax
00402B82    68 02000000   push 2
00402B87    BB 007D4000   mov ebx,00407D00
00402B8C    E8 614C0000   call 004077F2                            ; 取后5位是2EEE4
00402B91    83C4 1C         add esp,1C                               ; 下面的算法是重复的。。就是- ÷ ×
00402B94    8945 E0         mov dword ptr ss:,eax
....
00402BFC    DD45 D4         fld qword ptr ss:
00402BFF    DC35 42F34A00   fdiv qword ptr ds:               ; 机器码 112833956 除以780
00402C05    DD5D CC         fstp qword ptr ss:
00402C08    DD45 CC         fld qword ptr ss:
00402C0B    E8 82EBFFFF   call 00401792                            ; 得144658 十六进制是23512
00402C10    68 01030080   push 80000301
00402C15    6A 00         push 0
00402C17    50            push eax
00402C18    68 01000000   push 1
.....
00402C4C    50            push eax
00402C4D    68 02000000   push 2
00402C52    BB 007D4000   mov ebx,00407D00
00402C57    E8 964B0000   call 004077F2                            ; 取后五位是23512
00402C5C    83C4 1C         add esp,1C
.....
00402CC7    DD45 B8         fld qword ptr ss:
00402CCA    DC25 4AF34A00   fsub qword ptr ds:               ; 机器码112833956-46578
00402CD0    DD5D B0         fstp qword ptr ss:
00402CD3    DD45 B0         fld qword ptr ss:
00402CD6    E8 B7EAFFFF   call 00401792                            ; 得 112787378十六进制是6B8FFB2
00402CDB    68 01030080   push 80000301
00402CE0    6A 00         push 0
00402CE2    50            push eax
00402CE3    68 01000000   push 1
00402CE8    BB C0834000   mov ebx,004083C0
00402CED    E8 004B0000   call 004077F2
00402CF2    83C4 10         add esp,10
00402CF5    8945 AC         mov dword ptr ss:,eax
00402CF8    68 01030080   push 80000301
00402CFD    6A 00         push 0
00402CFF    68 05000000   push 5
00402D04    68 04000080   push 80000004
00402D09    6A 00         push 0
00402D0B    8B45 AC         mov eax,dword ptr ss:
00402D0E    85C0            test eax,eax
00402D10    75 05         jnz short 00402D17
00402D12    B8 B2984900   mov eax,004998B2                         ; ā
00402D17    50            push eax
00402D18    68 02000000   push 2
00402D1D    BB 007D4000   mov ebx,00407D00
00402D22    E8 CB4A0000   call 004077F2                            ; 取后五位是8FFB2
00402D27    83C4 1C         add esp,1C
.....
00402D8A    E8 514A0000   call 004077E0
00402D8F    83C4 04         add esp,4
00402D92    DD45 9C         fld qword ptr ss:
00402D95    DC35 52F34A00   fdiv qword ptr ds:               ; 机器码112833956 除以 362
00402D9B    DD5D 94         fstp qword ptr ss:
00402D9E    DD45 94         fld qword ptr ss:
00402DA1    E8 ECE9FFFF   call 00401792                            ; 得 311696 十六进制是 4C190
00402DA6    68 01030080   push 80000301
00402DAB    6A 00         push 0
00402DAD    50            push eax
00402DAE    68 01000000   push 1
00402DB3    BB C0834000   mov ebx,004083C0
00402DB8    E8 354A0000   call 004077F2
00402DBD    83C4 10         add esp,10
00402DC0    8945 90         mov dword ptr ss:,eax
00402DC3    68 01030080   push 80000301
00402DC8    6A 00         push 0
00402DCA    68 05000000   push 5
00402DCF    68 04000080   push 80000004
00402DD4    6A 00         push 0
00402DD6    8B45 90         mov eax,dword ptr ss:
00402DD9    85C0            test eax,eax
00402DDB    75 05         jnz short 00402DE2
00402DDD    B8 B2984900   mov eax,004998B2                         ; ā
00402DE2    50            push eax
00402DE3    68 02000000   push 2
00402DE8    BB 007D4000   mov ebx,00407D00
00402DED    E8 004A0000   call 004077F2                            ; 取后五位是 4C190
00402DF2    83C4 1C         add esp,1C
00402DF5    8945 8C         mov dword ptr ss:,eax
00402DF8    8B5D 90         mov ebx,dword ptr ss:
00402DFB    85DB            test ebx,ebx
00402DFD    74 09         je short 00402E08
00402DFF    53            push ebx
00402E00    E8 DB490000   call 004077E0
00402E05    83C4 04         add esp,4
00402E08    FF75 8C         push dword ptr ss:
00402E0B    68 5AF34A00   push 004AF35A                            ; -
00402E10    FF75 A8         push dword ptr ss:
00402E13    68 5AF34A00   push 004AF35A                            ; -
00402E18    FF75 C4         push dword ptr ss:
00402E1B    68 5AF34A00   push 004AF35A                            ; -
00402E20    FF75 E0         push dword ptr ss:
00402E23    B9 07000000   mov ecx,7
00402E28    E8 2DFAFFFF   call 0040285A                            ; 用-连接字符串得到的注册码是2EEE4-23512-8FFB2-4C190

我的注册码是:2EEE4-23512-8FFB2-4C190
至此。
分析完毕。
这里贴出来一下半自动注册机把。
要超级模块的。机器码=到整数(编辑框1.内容)
编辑框2.内容=取文本右边 (十到十六 (机器码 × 465), 5) + “-” + 取文本右边 (十到十六 (机器码 ÷ 780), 5) + “-” + 取文本右边 (十到十六 (机器码 - 46578), 5) + “-” + 取文本右边 (十到十六 (机器码 ÷ 362), 5)


在key里面应该这么填

然后就成功了=-=

至此。。。完结~




rain灿 发表于 2014-10-5 19:56

{:6_162:} 尼玛。。全错误了。。。。=-= 骚等 我在去修改下

WyM 发表于 2014-10-5 20:07

我是板凳

Nx3sdHy 发表于 2014-10-5 20:13

楼主,图片没有啦{:6_162:}

rain灿 发表于 2014-10-5 20:34

扫地僧 发表于 2014-10-5 20:23
默默的看着菜菜师傅逗逼

{:6_167:}小样=-=。。。。真乖。

Mrack 发表于 2014-10-5 23:21

菜菜牛逼,带我飞

Mrack 发表于 2014-10-5 23:23

逗比菜菜好,膜拜分析算法,写注册机
(⊙o⊙)

王尼玛 发表于 2014-10-6 20:12

膜拜分析算法

bigeorry 发表于 2014-10-10 18:29

哈哈。菜菜大神也出来了!{:5_118:}

旁观者 发表于 2014-10-10 19:29

学习学习,带我们分析带我们飞
页: [1] 2 3
查看完整版本: 一个超级简单的cm 简略分析