忆晨轩 发表于 2015-1-3 17:07

新手破解 破解 楚汉棋缘

呵呵~昨天刚刚写的第一帖出现了小错误~没想到大大们那个点还在电脑前面~~确实不容易~致敬!

还是新手教程,菜鸟哈~~大牛别喷~! 也不知道算不得逆向,各位看官看完就明白~~

   查壳:Borland C++ 1999   好吧~无壳~直接载入OD 继续新手的思路 查询字符串

其实下面还有注册成功~但是我没跟出什么有用的从这么注册版入手~ 继续段首下段

直到此处
00416E3B      A1 30205100   mov eax,dword ptr ds:
00416E40      8038 00       cmp byte ptr ds:,0x0
00416E43      74 6E         je Xchess.00416EB3
00416E45|.66:C746 10 74>mov word ptr ds:,0x74
00416E4B|.BA 60434E00   mov edx,chess.004E4360                   ;楚汉棋缘1.46注册版

那么 00416E43 既然是关键跳 那么影响他跳转的判断条件就是上面 cmp 的比较结果,因为他是根据eax的地址变量来取得,而这个变量的地址好像还是动态的~~这让我这个新手很无语~~

也就是这句00416E40      8038 00       cmp byte ptr ds:,0x0 里面的 ds:为0 现在我们修改为1 则变为注册版
不要问为什么不修改JE因为重启验证 那样只算是自慰而已~没用
既然不知道怎么改 动态内存地址那我们可以在这个跳转之前强行赋值~~看图

那么在之前我们就修改上面语句

至此也算是爆破成功之后运行 在
00401BB1|. /75 52         jnz Xchess.00401C05
00401BB3|. |66:C745 E4 08>mov word ptr ss:,0x8
00401BB9|. |BA 4B374E00   mov edx,chess.004E374B                   ;程序有误,请写信告诉我该错误详细发生情况,谢谢.
出现错误,直接JMP 无视~~测试之后算是正常~~~

也不知道这算不算是PJ完全~~有不对的还希望指正~~




轻描 发表于 2015-1-3 17:10

简单扼要,支持下

520Kelly 发表于 2015-1-3 17:14

这个思路不错、不过如果没有把握好时机的话、还是不行

bigeorry 发表于 2015-1-3 17:25

楼主讲的不错,支持下

Scar-疤痕 发表于 2015-1-3 17:33

楼主讲的很不错,谢谢了

wdrvk 发表于 2015-1-3 18:16

似懂非懂。感觉很深奥啊

风清扬 发表于 2015-1-3 19:27

不错啊 虽然看不懂

sndncel 发表于 2015-1-3 19:37

简单易懂。。。。谢谢分享。。。。

忆晨轩 发表于 2015-1-4 19:49

风清扬 发表于 2015-1-3 19:27
不错啊 虽然看不懂

其实就是 在判断是否注册之前 提前把 1 写给动态地址~ 如果需要视频的话我可以录制一个

忆晨轩 发表于 2015-1-4 19:50

wdrvk 发表于 2015-1-3 18:16
似懂非懂。感觉很深奥啊

其实就是 在判断是否注册之前 提前把1 写给动态地址~ 如果需要视频的话我可以录制一个
页: [1] 2 3
查看完整版本: 新手逆向 逆向 楚汉棋缘