首页
社区
课程
招聘
[原创]说一个程序防爆破的思路
发表于: 2013-6-4 12:59 3293

[原创]说一个程序防爆破的思路

2013-6-4 12:59
3293
标题:【原创】 说一个程序防爆破的思路
作者: Kizab
时间:2013-06-04

绝对原创,如有雷同,纯属巧合,毕竟小菜,没看过那么多书……

声明:本文看雪手发(你没看错,是手发,手机上写的),手机党不容易啊…多少有点不容易啊…

好了,不废话,进入正题。

大家都知道,一些注册码比较就是一些strcmp,ifa=b什么的,所以呢,有些没加壳的cm用了弱智比较注册码的话呢,我们就可以在od里把jnz改成jz来达到爆破的目的。也就是说,让软件判断失误,把错误的注册码判断成对的。
if (a!=b){
注册成功;}
//手机打字不方便,就用a,b代替了,请大家谅解。
所以呢,为了防止程序被爆破,让cracker专心的去找算法,本人在这里想到了一个方法,就是用readprocessmemory读取这个判断的字节,也就是0x75,(0x74)然后再读取另一个判断字节,也就是判断两个字节是否相等的内个机器码如果相等,则注册成功。我有点逻辑混乱,不知道大家听明白了么,如果不明白我下面写个伪码给大家看一下,因为是手机发帖,没有环境,也不知道能不能行。大家看个思路叭~

if(falsekey=truekey)读取这里的判断为dwb1;
{
readprocessmemory(&dwb1);
readprocessmemory(&dwb2);//这里读取的是下面内个判断的机器码
if(dwb1==dwb2)
{
注册成功;
}
}

不知道大家看明白上面我的思路了么,可能不是太好理解,我现在也是有点晕…毕竟第一次发帖,还是手机发帖,打字还麻烦,思路也不是很清晰,关键是我紧张啊,有点语无伦次的,这里借出师表的一句话,
今当远离,临贴涕零,不知所言。
苦逼的高三党,我是冒着多大的风险来发帖的,求大家祝福我高考顺利叭~

[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1612
活跃值: (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我再来解释下我的思路,这样写程序呢,是防止爆破的,像我这样的小菜,破解一般都是爆破,汇编的注册算法看不明白,只好爆破了。而这样一来呢,用了我的方法,如果cracker想爆破呢,就要改第一处判断的机器码,但是这样一来,后面的判断两个机器码是否相等的判断就会失败,也就不会提示注册成功。
而如果把后面的判断改了,那么两个机器码相同了,但是后面判断两个机器码变成了判断不同才显示注册成功的,所以想爆破的cracker又失败了,只好乖乖的去找注册算法了。
2013-6-4 13:06
0
雪    币: 1612
活跃值: (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
求转正啊!大家不要只看不回啊,来发表意见啊,来喷我啊!!来证明你的存在啊!难道我写的这个没有实际意义的么……
2013-6-4 13:09
0
雪    币: 398
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
这应该也是比较容易爆破的吧,直接把二个判断相等改成不等,不就行了?
2013-6-4 13:54
0
雪    币: 1612
活跃值: (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那你第一个判断就过不去了丫
2013-6-4 16:11
0
雪    币: 66
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
爆破不仅可jnz改成jz,还可jnz xxx改jmp xxx2
2013-6-4 19:37
0
雪    币: 1612
活跃值: (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哦哦,知道了,学习了,我竟然不知道…对于破解我完全是自学的,知识自然有漏洞,水平也是小菜,现在竟然连dll的脱壳都不会…那些修复导出表什么的丝毫不明白…
2013-6-5 08:55
0
游客
登录 | 注册 方可回帖
返回