首页
社区
课程
招聘
[原创]要求:写出生成注册码的算法可得一百分,暴力破解请吃鸭蛋0分
发表于: 2009-1-7 19:32 13031

[原创]要求:写出生成注册码的算法可得一百分,暴力破解请吃鸭蛋0分

2009-1-7 19:32
13031
【原创】要求:写出生成注册码的算法可得一百分,暴力破解请吃鸭蛋0分
下载: CrackMe.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (38)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
这样不知几分?
SN:= (((Key mod 1725747523)*31)+710526211227) ^ 672543512909
2009-1-7 20:02
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
算法我莫有弄得太难呀,咋这半天莫有人弄出算法呢.应该是很简单的呀...
2009-1-7 20:03
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这样写,还是写不出注册机来.不信你试试.

因为strtoint64 转换之后有修正的地方 就是edx值比较的地方.

在试试看:

  暂时给你91分

好象就要成功了加油,但还差最关键的步骤
2009-1-7 20:11
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
额~还米摸索明白~
2009-1-7 20:13
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
MyKey = 6826596698965
6826596698965 mod 1725747523 = 1265245500
                              * 31 = 39222610500
                                   + 710526211227 = 749748821727
                                                   ^672543512909 = 214852470674

2009-1-7 20:22
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
98分

如果用strtoint64,然后在由int64如何能转换成最后的字符串类型的结果,那就得一百分了.

在加油.
2009-1-7 20:32
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
8
不懂
123456
2009-1-7 20:34
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
regCode.Text:=IntToStr(((StrToInt64(trim(MacCode.Text)) mod $66DCD143)*$0000001F+$6EA9949B) xor $96B7994D);

这是按上面的注册算法计算后的结果是这样的:

00450E32   8D55F8                 lea     edx, [ebp-$08]

* Reference to: SysUtils.Trim(AnsiString):AnsiString;overload;
|
00450E35   E89673FBFF             call    004081D0
00450E3A   8B45F8                 mov     eax, [ebp-$08]

* Reference to: SysUtils.StrToInt64(AnsiString):Int64;
|
00450E3D   E83E76FBFF             call    00408480

* Reference to: System.@_llmod;
|
00450E42   E87141FBFF             call    00404FB8

* Reference to: System.@_llmul;
|           or: System.@_llmulo;
|
00450E47   E84841FBFF             call    00404F94
00450E4C   059B94A96E             add     eax, +$6EA9949B
00450E51   83D200                 adc     edx, +$00  ;看这按算法反成这样地了
00450E54   81F04D99B796           xor     eax, $96B7994D
00450E5A   81F200000000           xor     edx, $00000000;看这按算法反成这样地了
00450E60   52                     push    edx
00450E61   50                     push    eax
00450E62   8D45FC                 lea     eax, [ebp-$04]

而crackme中是这样的:
adc     edx, +$0A5

xor     edx, $9C

所以,注册写还是写不了,不知道是为什么最后转换成字符串的时候为什么会变呢.

咋变成这样地了呢:

adc     edx, +$00  
xor     edx, $00000000

按这样生成的注册码,去注册肯定是注册不了的.
2009-1-7 20:45
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
regCode.Text:=inttostr((6826596698965 mod 1725747523*31+710526211227) xor 672543512909)

sessiondiy

得100分

2009-1-7 21:04
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
我还是不懂你的问题在那里
对了. 忘了问... 我在2楼 ' 6楼写的是同样的东西, 为何相差7分?

我俩看的是同一个 CM 吗?
2009-1-7 21:12
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个CM是我写的:
我写完了之后我想写个注册机,刚开始的时候我是这样写的:

regCode.Text:=IntToStr(((StrToInt64(trim(MacCode.Text)) mod $66DCD143)*$0000001F+$6EA9949B) xor $96B7994D);

这样写,我郁闷了一天,也莫有弄明白为啥计算出来的结果,就是不对呢.

用sessiondiy 的算法,这样写一下竟然好用了,太奇怪了:

regCode.Text:=inttostr((strtoint64(macCode.text) mod 1725747523*31+710526211227) xor 672543512909);

sessiondiy  对不起,是我没看明白,本应该你第一个发的就是正确的.是我没看明白.
2009-1-7 21:24
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
13
我想我明白了.
你想将这算法写成注册机, 结果你发现Compiler没正确处理 64bit 的 int
所以你一直算不出正确值, 对不对?
2009-1-7 21:24
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
14
被你快了一步发帖.
我真会猜...哈
2009-1-7 21:25
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是的,谢谢sessiondiy 你真是高手佩服

sessiondiy 2 楼发的答案是正确的
给 100分
2009-1-7 21:30
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
0086C526    05 9B94A96E         add eax,6EA9949B
0086C52B    81D2 A5000000       adc edx,0A5
0086C531    81F0 4D99B796       xor eax,96B7994D
0086C537    81F2 9C000000       xor edx,9C

终于明白了,原来int64需要需要两个寄存器才能装得下。
2009-1-8 13:49
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
17
100分没什么用
吃个鸭蛋比较实惠,虽然比不上猪蹄
2009-1-8 14:52
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
18
sessiondiy
不是高手....他是翻译官,是crackme的翻译官....嘿嘿.
二进制的脑袋里面就想是黑盒,什么crackme往里一丢.完事。
2009-1-8 15:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼上的错了,你楼上的才是crackme的翻译官+算法天才

当然,sessiondiy 的技术我一向都很佩服
2009-1-8 20:59
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
20
天生不喜欢吃肥肉
二颗水煮蛋清淡一点
2009-1-8 22:12
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
21
拿oo比鸡腿
老大, 不要害我被笑啊.
2009-1-8 22:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
都是人才哪。。。
2009-1-8 22:56
0
雪    币: 1564
活跃值: (3567)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
23
传说中的.....高级人脑翻译官
2009-1-10 12:44
0
雪    币: 1596
活跃值: (35)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
24
各位高人能不能分析一下
2009-1-23 15:39
0
雪    币: 1596
活跃值: (35)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
25
这样可以吗?
上传的附件:
2009-2-11 09:49
0
游客
登录 | 注册 方可回帖
返回