首页
社区
课程
招聘
[旧帖] [求助]华夏黑客游戏问题 0.00雪花
发表于: 2007-8-21 11:03 4038

[旧帖] [求助]华夏黑客游戏问题 0.00雪花

2007-8-21 11:03
4038
http://crack.77169.com/v4/77huaxia169.html
此为华夏第4期的黑客游戏,破解很简单!
要求NAME为123456,我输入KEY为147258
程序将KEY/10+123456=138181(即21BC5),再与324081(即4F1F1)比较判断
(324081-123456)*10=2006250
由于整型除法只取商,与余数无关,例如:147258/10=14725
所以我认为KEY为2006250至2006259共10个,但过关要求的KEY却只能是2006250,是不是我有什么问题没有考虑???

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
算法过程是这样的:

00401A1A    E8 6F030000     call <jmp.&MFC42D.#3174> ;这里即为调用GetWindowText
00401A1F    8D4D E8         lea ecx,dword ptr ss:[ebp-18]   ;返回到这里
00401A22    51              push ecx
00401A23    8B4D F0         mov ecx,dword ptr ss:[ebp-10]
00401A26    81C1 A0000000   add ecx,0A0

00401A2C    E8 5D030000     call <jmp.&MFC42D.#3174>   ;这里是获得输入的注册码
00401A31    8D4D EC         lea ecx,dword ptr ss:[ebp-14]
00401A34    E8 4F030000     call <jmp.&MFC42D.#880>
00401A39    8BF4            mov esi,esp
00401A3B    50              push eax
00401A3C    FF15 30764100   call dword ptr ds:[<&MSVCRTD.atoi>]                 ; MSVCRTD.atoi

 上面是将用户名123456符串转化为数字
00401A42    83C4 04         add esp,4
00401A45    3BF4            cmp esi,esp
00401A47    E8 4E030000     call <jmp.&MSVCRTD._chkesp>
00401A4C    8D9400 712D0100 lea edx,dword ptr ds:[eax+eax+12D71]   ;edx=用户名+用户名+0x12d71
00401A53    8955 E4         mov dword ptr ss:[ebp-1C],edx                                     ;[ebp-1c]=edx
00401A56    8D4D E8         lea ecx,dword ptr ss:[ebp-18]
00401A59    E8 2A030000     call <jmp.&MFC42D.#880>
00401A5E    8BF4            mov esi,esp
00401A60    50              push eax
00401A61    FF15 30764100   call dword ptr ds:[<&MSVCRTD.atoi>]                 ; MSVCRTD.atoi

 这里是将输入的注册码输化为数字
00401A67    83C4 04         add esp,4
00401A6A    3BF4            cmp esi,esp
00401A6C    E8 29030000     call <jmp.&MSVCRTD._chkesp>
00401A71    99              cdq
00401A72    B9 0A000000     mov ecx,0A
00401A77    F7F9            idiv ecx                                       ;把输入的注册码除以10
00401A79    05 40E20100     add eax,1E240               ;得到的结果再加1E240
00401A7E    8945 E0         mov dword ptr ss:[ebp-20],eax ;将此时得到的结果给[ebp-20]
00401A81    8B55 E4         mov edx,dword ptr ss:[ebp-1C]   ;将用用户名计算得到的真实注册码给EDX
00401A84    3B55 E0         cmp edx,dword ptr ss:[ebp-20] ;将我们输入的假注册码计算得到的结果与EDX比较
00401A87    75 10           jnz short 4x.00401A99      ;如果不相等则跳到错误代码处.否则显示注册成功.

至此算法分析完毕.这关的注册码比较为:

用户名+用户名+0x12d71=注册码/10+0x1E240
所以真实的注册算法应该为

(用户名+用户名+0x12d71-0x1E240)*10=真实注册码

这一关的过关要求用户名为123456,所以真实注册码为(123456+123456-+0x12d71-0x1E240)*10==2006250

所以这一关的过关KEY为2006250, 输入后成功进入第五关.
我在我自己的博客上写了详细的过程,也有前面几关的过程,这个游戏总共十关.我会陆续把过程写在自己博客上.有兴趣的话可以去看看.
http://www.duku123.com/upload/?uid-1-action-viewspace-itemid-216
2007-8-21 12:04
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
顺便贴个通关的截图吧.



郁闷写的原创文章没人回.
上传的附件:
  • 6.jpg (50.38kb,89次下载)
2007-8-21 12:16
0
雪    币: 16
活跃值: (430)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
黑客啊~~~
2007-8-22 01:13
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢独孤剑高手指点,谢谢了!
我用2006251~2006259也能注册成功,只是不能通关!
你有华夏论坛的帐号?我想注册一个,不让注册,晕!!!
2007-8-22 01:24
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
我在他们没开什么邀请码时有一个,现在不记得帐号了,现在没法注册,真是无语.所以也没法在上面发布这个通关的过程,就写在自己博客上了.
2007-8-22 08:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
呵呵,原来如此!
2007-8-22 08:41
0
游客
登录 | 注册 方可回帖
返回
//