分享
 
 
 

crack新手进化篇(新手级)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

crack新手进化篇(新手级)

软件怎么判断我们是否注册了

不要忘了,软件最终是按照人的思维做的,我们回到自身来,“如果是你,你怎么判断别人是否注册了呢”,“我要别人输入用户名和注册码啊”,聪明的想法,很多软件也是这样做的,如豪杰超级解霸。(但是不是所以的软件,方法太多了,友情提示:这个世界没有完全通用的东西,除了你聪明的大脑)

具体一点呢??????????

我们把用户名按照某种方法运算得到一个真正的注册码和用户输入的进行比较不就知道了吗?Yeah,也就是

真正的注册码 = f(用户名)

和Y = f(x) 是一样的

然后就是很经典的比较了,为什么说经典呢?

因为大概有60%的软件是这么做的,到底是什么比较呢,看看

请注意这里会有错误处理的噢,在这之前呢,就是经典比较啊,如果这里的错误处理提示我们诸如:注册错误之类的东西,我们就很容易定位到经典比较了。

那么上面的流程在汇编语言里面是怎么实现的呢?

比较有2种方式,直接和间接,直接就是用:

cmp x, y

je (jne) label

这里的x和y只是一个符号,实际上可能是寄存器和存储器

间接的呢?调用一个子程序比较,如下面的代码

if (strcmp(&x, & y)) //如果strcmp返回值是1

printf(“right”);

else……………..//当然是错误拉

这里的strcmp也只是一个符号,现实可能有变化

用汇编语言描述呢?

push &y;

push &x;

call strcmp;

test ax,ax ;判断返回值(也就是出口参数,也可以在子程序里判断)

je……

2.为什么可以调试可执行程序呢

可能很多菜鸟有我这样的疑问,呵呵

调试可执行程序的理论基础:

我们都知道在汇编语言里面可以用debug来调试程序。但是为什么可以?

其实和简单,因为机器只识别的是0和1(准确的说你高电平和底电平,你可以简单的理解为灯泡亮和黑),我们称之为机器码,而我们的汇编语言与机器码是一一对应的,所以我们可以根据机器码得到对应的汇编代码,也可以反过来通过汇编代码得到对应的机器码,

如:在debug下我们可以看到

用debug测试一下:

-a

1370:0100 mov ax,bx

1370:0102

-u100

1370:0100 89D8 MOV AX,BX

这里的89D8就是MOV AX,BX的机器码

3.破解教程都告诉我们,找到错误提示上面的第一个有条件跳转,改掉就可以爆破,为什么呢?因为程序是顺序执行的,只要我们找到提示出错的地方,那么在此之前必定已经比较完了,所以再往前面找找就看到了关键的比较,关键的地方就是上面的比较,如果我们改变的判断条件呢?如果改成不相等就注册成功,那么。。(嘿嘿,某同志传来不怀好意的笑声),那么不管我们输入什么都是“正版”的了,没有交钱的“正版”,这就是我们改变跳转的原因,也就是改变改变的判断条件

5.下面我们开始实战演习,虽然这只是一个简单的用S-Demo做的动画,但是看完了下面的文章你还是会收获很多,不相信,我晕,把简单的事情做到极限就成功了,呵呵

(1).爆破

这个很简单就不多讲了,运行程序,随便输入密码,确定,提示:“password wrong”,

用ollydbg载入这个动画,查找程序用到的字符串,找到password wrong,下个断点,还记得前面的理论吗?

再向前找找就可以找到比较的关键地方了(条件跳转),好的,找到的地址是:0040203F

0040202A |. FFB6 A4000000 PUSH DWORD PTR DS:[ESI+A4] ; /s2

下个断点,看看到底压入了堆栈什么

00402030 |. 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34] ; |

00402033 |. 50 PUSH EAX ; |s1

00402034 |. FF15 E0234100 CALL DWORD PTR DS:[<&MSVCRT._stricmp>] ; \_stricmp //这里看到了什么,stricmp,难道这就是传说中的关键比较吗?

但是比较之后没有跳转啊,是吗?仔细看看,比较之后的结果放在那里,eax !

下面不是有一个je吗?

0040203A |. 83C4 20 ADD ESP,20 ;平衡堆栈

0040203D |. 85C0 TEST EAX,EAX ;测试返回值

0040203F |. 74 15 JE SHORT test.00402056

修改为jne,保存,运行,ok,搞定,请你再次回顾前面的流程图

(2).寻寻觅觅找密码

还记得前面的流程图吗?如果我们在程序比较的时候中断程序会有什么发现呢?呵呵,这个时候会看到真正的密码,重新用ollydbg载入这个动画,下断点00402034

为什么要在这里下断点?好问题,因为这里看到了call DWORD PTR DS:[<&MSVCRT._stricmp>],看看流程图,明白了吗,呵呵

这里我们在堆栈区域可以看到我们输入试炼码和真正的密码,为什么在堆栈区域,因为在windows下通过堆栈传递参数。请看上面的简单分析,破解补丁的编写

(3).文件补丁的编写(c语言简单实现)

前面我们把je改成了jne,随便输入密码都可以了

实质是把机器码由74h改成75h,因为机器码和汇编指令是一一对应的,那么我们只要写个小东西,修改就可以了。我已经写好了,很短,很好懂。Crack.c,我们分析一下

#include <stdio.h>

#include <string.h>

int main(void)

{

FILE *fp_out; //要写入的文件

printf("\n\t\t\t\t Copy Right by ngaut\n");

printf("Cracking......\n");

//打开文件test.exe

if ((fp_out = fopen("test.exe", "r+"))==NULL)

{

printf("error!!! Can not open test.exe!!!\n\n");

printf("Press any key to continue\n");

getchar();

exit(0);

}

//定位到要修改的地方,这里是 0x203f,为什么呢?下面给出回答

fseek(fp_out, 0x203f, SEEK_SET);

fputc(0x75, fp_out); //写入数据0x75,也就是把机器码74改为75,

//汇编则是 je 改为了jne

fclose(fp_out);

这里 0x203f = 0x0040203F – 0x00400000

(4).让程序自动弹出正确的密码(过几天给出,太忙了)

nguat@sohu.com

由 ngaut 于 2005-01-04 11:14 最后编辑

_____________________________@

ngaut,如何我不能走得更远,我会分享我知道的,让大家走的更远,感谢所有无私奉献的人!!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有