巅烽2 发表于 2015-9-18 23:53

聪明宝贝 2.0破解教程(另类的破解方法)

本帖最后由 巅烽2 于 2015-9-19 00:08 编辑

文章标题】: 聪明宝贝 2.0破解教程
【软件名称】: 聪明宝贝 2.0
【下载地址】: http://www.onlinedown.net/soft/43830.htm
【操作平台】: XP
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!(作者生活不易,本教程仅用作交流,不得用于非法用途)
【详细过程】
一,前提
    教程很基础,但是大牛不要飞走(有问题需要请教),主要结合了dll劫持和内存注册机,网上也没看到过这样的教程,以后遇到类似的可以这样处理,先给大家演示一下成果,   废话不多说,看教程
通过下MessageBox (API)断点找到这里地址0x10060910
10060910 81EC A0000000 SUB ESP, 0xA0
10060916 53 PUSH EBX
10060917 56 PUSH ESI
10060918 8D4424 0C LEA EAX, DWORD PTR SS:
1006091C 57 PUSH EDI0012E3D0 00000000
1006091D 8D8424 54F5FFFF LEA EAX, DWORD PTR SS:
10060924 33DB XOR EBX, EBX
10060926 50 PUSH EAX
10060927 53 PUSH EBX



但是还是没有突破口,然后就在堆栈中找,找了好久无意中发现这个字符串
0012E3D4 00000000
0012E3D8 0326004D ASCII "4095406E10045240156256C930A73B714419DD255303355010391A85D726"
0012E3DC 100D0AD4 krnln.100D0AD4
0012E3E0 101055A0 krnln.101055A0
0012E3E4 00000000

(与10060910相对的栈顶相差0xAAC,也即ESP-0xAAC),试了一下结果成功了,我看了一下注册表发现找不到注册相,后来才看到根目录下的zhuce.dat文件,果然注册码再dat文件中
后来想怎么做一个注册机,这下难住了,找到了keymakeV2.0,但是不能打【ESP-0xAAC】,高兴的以为可以打补丁了,结果试了好久也不行,就要再放弃的时候突然想起了使用dll劫持的方法把那个ESP-0xB58的地址提前赋值给一个寄存器,这样再利用keymake来打,结果成功了,
二,
    下面是dll劫持和内存注册机的生成过程:
先找劫持时机,

1006091C    57            PUSH EDI
1006091D    8BBC24 B0000000 MOV EDI, DWORD PTR SS:         ; krnln.10105A04   //劫持时机改为:LEA EAX, DWORD PTR SS:

这是劫持数据


三,劫持完了开始内存注册机制作:
      制作内存注册机的话,选择内存的方式,因为我们的注册码是在寄存器地址所指向的内存中,而且我们这一次的软件是二级指针,地址的地址哦,所以中断的时候我们选择在
1006091D 8D8424 54F5FFFF LEA EAX, DWORD PTR SS:
10060924 33DB XOR EBX, EBX            //中断位置,因为此时的EAX中才是我们想要的地址ESP-0xAAC=0012E3D ,具体看图


                                                                                                      
最后看看成果

好了,大功告成,但是{:301_972:}不幸的是在XP的平台下可以,win7 x64下那个内存注册机还是不成功,我在win7 x64下看了一下劫持是成功的,但是内存注册机不成功,以为I是权限问题,结果还是不行,如果有大牛知道为什么可否指点一下,不胜感激

附上自己录制的视频,初次录制,录的不好,请见谅,网盘地址:
**** Hidden Message *****















苏紫方璇 发表于 2015-9-19 09:17

补丁在我这里可以用,win7 x64的

另外,你劫持改的代码应该有点问题,我在win7上测试时,填写完成注册码后直接崩溃,你在修改时应该注意保存原来的代码。
个人倾向于改成这样
10060910   .81EC A0000000 sub esp,0xA0
10060916   .53            push ebx
10060917   .56            push esi
10060918   .8D4424 0C   lea eax,dword ptr ss:
1006091C   .57            push edi
1006091D   .E9 B3EB0600   jmp krnln.100CF4D5
10060922      90            nop
10060923      90            nop
10060924   >33DB          xor ebx,ebx
10060926   .50            push eax
10060927   .53            push ebx
10060928   .6A 05         push 0x5
1006092A   .895C24 28   mov dword ptr ss:,ebx
1006092E   .895C24 2C   mov dword ptr ss:,ebx
10060932   .897C24 1C   mov dword ptr ss:,edi
10060936   .895C24 20   mov dword ptr ss:,ebx
1006093A   .895C24 24   mov dword ptr ss:,ebx
1006093E   .E8 0DDDFEFF   call krnln.1004E650


100CF4D5   > \8BBC24 B00000>mov edi,dword ptr ss:
100CF4DC   .8D9C24 54F5FF>lea ebx,dword ptr ss:
100CF4E3   .^ E9 3C14F9FF   jmp krnln.10060924
100CF4E8      90            nop

这里我没有动他的edi寄存器,因为下边有赋值,也没有动他的eax,因为下边有push作为参数调用函数的,所以我用了ebx作为容器,因为下边xor ebx,ebx清零了,所以无论上边怎么改ebx都会被清掉,对程序无影响。

夜丶依旧 发表于 2015-9-18 23:56

来学习下经验! 好牛B的样子

crownman 发表于 2015-9-19 00:05

路过看看怎么个另类

sky168 发表于 2015-9-19 00:08

谢谢楼主分享

mylin2008 发表于 2015-9-19 00:12

逍遥游子 发表于 2015-9-19 00:16

路过看看怎么个另类

火武猫猫 发表于 2015-9-19 00:41

不错的。。。

q245198004 发表于 2015-9-19 00:49

哈哈哈   虽然用不到 但是还是感谢楼主分享啊

fy50022 发表于 2015-9-19 01:32

这个到底是用于什么的东西呢?

苏紫方璇 发表于 2015-9-19 01:33

没必要dll劫持吧,keymaker可以获取esp的数值


页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 聪明宝贝 2.0破解教程(另类的破解方法)