我是一只小白 发表于 2017-1-15 18:32

镜中神无 发表于 2017-1-15 17:48
兄弟,看看我分析的对吗。我缺HB啊,想买改名卡

大意是对的,你继续分析下去就会发现别的内容。这个是有真码的,注册码

Icc 发表于 2017-1-15 20:33

算法并不复杂
看这么多人发了
我就发一下吧
程序获取了随机数 然后把输入的注册码转换到了整数
还有一个全局变量C(输入的注册码的每个字符的ASCII码的和)
程序做如下运算
结果 = 随机数 + 注册码 - C
如果结果是0 就是说随机数 + 注册码 = C
则注册成功
注册码的话没啥好办法了 不一定是数字
跑字典吧。。

Icc 发表于 2017-1-15 20:34

我是一只小白 发表于 2017-1-15 18:32
大意是对的,你继续分析下去就会发现别的内容。这个是有真码的,注册码

{:5_124:}是有真码
怎么找?
图片已经给得很清楚了。。。

凉游浅笔深画眉 发表于 2017-1-16 02:03

本帖最后由 凉游浅笔深画眉 于 2017-1-16 02:06 编辑

水平太菜,看不懂。。。。。。。

shizp 发表于 2017-1-16 16:46

本帖最后由 shizp 于 2017-1-16 16:48 编辑

与算法无关。找Patch点。
0045FEDD/$53            push    ebx
0045FEDE|.55            push    ebp
0045FEDF|.56            push    esi
0045FEE0|.57            push    edi
0045FEE1|.8B7C24 14   mov   edi, dword ptr ss:
0045FEE5|>8138 32323138 /cmp   dword ptr ds:, 0x38313232
0045FEEB      75 10         |jnz   short 新版cm.0045FEFD
0045FEED|.B8 B4104000   |mov   eax, 新版cm.004010B4
0045FEF2|.C700 84000000 |mov   dword ptr ds:, 0x84
0045FEF8|.33C0          |xor   eax, eax
0045FEFA|.40            |inc   eax
0045FEFB|.33D2          |xor   edx, edx
0045FEFD|>0FB607      |movzx   eax, byte ptr ds:
0045FF00|.8B0D E4194A00 |mov   ecx, dword ptr ds:       ;新版cm.004A19EE
0045FF06|.8A0441      |mov   al, byte ptr ds:
0045FF09|.83E0 08       |and   eax, 0x8
0045FF0C|.85C0          |test    eax, eax
0045FF0E|.74 03         |je      short 新版cm.0045FF13
0045FF10|.47            |inc   edi
0045FF11|.^ EB D2         \jmp   short 新版cm.0045FEE5
0045FF13|>0FB637      movzx   esi, byte ptr ds:
0045FF16|.47            inc   edi
0045FF17|.83FE 2D       cmp   esi, 0x2D
0045FF1A|.8BEE          mov   ebp, esi

Icc 发表于 2017-1-16 16:54

shizp 发表于 2017-1-16 16:46
与算法无关。找Patch点。
0045FEDD/$53            push    ebx
0045FEDE|.55            push   ...

其实patch起来很简单
按钮事件中有一个ftst
在这个指令执行之前
ST(0)寄存器置0就会成功。。。
因为
注册码 + 随机数 = 注册码的每个字符的ASCII码和
只要这个成立就会提示成功

shizp 发表于 2017-1-16 16:57

Icc 发表于 2017-1-16 16:54
其实patch起来很简单
按钮事件中有一个ftst
在这个指令执行之前

程序内置Patch,密码就是2218。

Icc 发表于 2017-1-16 17:07

shizp 发表于 2017-1-16 16:57
程序内置Patch,密码就是2218。

{:5_124:}这个密码你放到虚拟机里面试试
现在的CPU执行效率都是差不多的
一般情况下就不会出错
因为楼主用的是rdtsc取得随机数。

shizp 发表于 2017-1-16 17:25

Icc 发表于 2017-1-16 17:07
这个密码你放到虚拟机里面试试
现在的CPU执行效率都是差不多的
一般情况下就不会出错


呵呵,密码很多,只要以2218开头的数都能随时注册成功。

Icc 发表于 2017-1-16 17:36

shizp 发表于 2017-1-16 17:25
呵呵,密码很多,只要以2218开头的数都能随时注册成功。

你在虚拟机里试试
页: 1 [2] 3
查看完整版本: 【代发】三分钟内写的CM,求追码