破解的思路.ppt

上传人:本田雅阁 文档编号:3174035 上传时间:2019-07-20 格式:PPT 页数:46 大小:132.01KB
返回 下载 相关 举报
破解的思路.ppt_第1页
第1页 / 共46页
破解的思路.ppt_第2页
第2页 / 共46页
破解的思路.ppt_第3页
第3页 / 共46页
破解的思路.ppt_第4页
第4页 / 共46页
破解的思路.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《破解的思路.ppt》由会员分享,可在线阅读,更多相关《破解的思路.ppt(46页珍藏版)》请在三一文库上搜索。

1、神秘的解密,BY 三人行,很多人可能觉得解密很神秘,那么解密神秘吗? 1.我们来看看大家最关心的解密。到底什么是解密呢?简单点且不太准确的说,就是解开密码(等会我将为大家实例演示一个破解密码的例子,兴奋)有时我们也称为破解(crack),做破解的人我们称为cracker,Q:学破解对我来说有什么好处?(这个年代,没有好处的事情,你恐怕不会做吧,呵呵) A:这个问题应该你自己来回答,呵呵,你为什么要学?“我想免费使用软件”倒.那多少也算是个目的,但我希望你不要只抱这种目的(目前国内共享软件业还有待发展)。 1.德; 要有社会道德意识,必须遵守一些规范!,友情提示:不懂汇编的人永远只能是菜鸟!,你

2、见过破解的东西吗? 当然,你用的Office Professional Edition 2003是花多少钱买的? 4块,10块,哇,好贵啊,可是你知道正版的多少钱吗? 这里是微软提供的价格 直接从Microsoft订购 Office Professional Edition 2003,新用户价格 Office Professional Edition 2003 RMB 3,822,我没有装这么贵的东西,呵呵,那好,你用过qq吧(中国人都知道)那个能显示别人ip地址的qq就是经过破解的。,你看电影用的豪杰超级解霸交钱注册了吗?我们看电影享受了,可是。 豪杰公司的员工呢? 所以如果大家学会了破解,

3、也请大家不要传播破解软件。保护中国的软件产业,我想很多人已经迫切的想看看到底是怎么操作的,不急,很快就开始了,我们先来预热一下,看一点准备知识,我们知道一个软件要我们交钱注册通常都会给我们一点限制,如:只能使用30次,15天,功能限制。 大家的windows xp不激活只能用30天吧,那么软件怎么判断我们是否注册了呢?不要忘了,软件最终是按照人的思维做的,我们回到自身来,“如果是你,你怎么判断别人是否注册了呢”,“我要别人输入用户名和注册码啊”,聪明的想法,很多软件也是这样做的,如豪杰超级解霸。,具体一点呢?,我们把用户名按照某种方法运算得到一个真正的注册码和用户输入的进行比较不就知道了吗?Y

4、eah,也就是,真正的注册码 = f(用户名) Y = f(x) 然后就是很经典的比较了,为什么说经典呢? 因为有60%的软件是这么做的,到底是什么比较呢,看看,真正的注册码=用户输入的注册码吗?,去掉所有限制,正版了,提示注册错误 Say 88,聪明的你是否想到了什么?关键就是这里的比较,Y,N,决定何去何从比较,那么上面的流程在汇编语言里面是怎么实现的呢? 比较有2种方式,直接和间接,直接就是用: cmp x, y (比较值或者短字符串) je (jne) label,间接的呢?调用一个子程序比较,如下面的代码 if (strcmp(判断返回值(也就是出口参数) je,关键的地方就是上面的

5、比较,如果我们改变的判断条件呢?如果改成不相等就注册成功,那么。(嘿嘿,某同志传来不怀好意的笑声),那么不管我们输入什么都是“正版”的了,没有交钱的正版,关键找到了,但是,(某听众问道:“我们知道程序在那里比较呢?”),非常聪明的想法,我们再看看比较的地方,下一张幻灯片,真正的注册码=用户输入的注册码吗?,去掉所有限制,正版了,提示注册错误 Say 88,这里会有错误提示的噢,在这之前呢,就是比较啊,Y,N,决定何去何从比较,有了前面的基础,我们就可以仔细分析了,分析的方法有2中: 1.静态分析(就象我们用debug的u命令,然后静静的看反汇编的代码),或者打印出来慢慢看 2.动态分析,就是边

6、分析边调试,查看一些寄存器的值 标志位,等等(所以debug是动静结合啊),为什么可以调试可执行程序呢 调试可执行程序的理论基础: 我们都知道在汇编语言里面可以用debug来调试程序。但是为什么可以?,其实和简单,因为机器只识别的是0和1,我们称之为机器码,而我们的汇编语言与机器码是一一对应的,所以我们可以根据机器码得到对应的汇编代码 如:在debug下我们可以看到,用debug测试一下: -a 1370:0100 mov ax,bx 1370:0102 -u100 1370:0100 89D8 MOV AX,BX 这里的89D8就是MOV AX,BX的机器码,这么看来,只要机器可以执行我们都

7、可以看到对应的汇编代码,我们知道程序是顺序执行的,只要我们找到提示出错的地方,然后再往前面找找不就看到了比较的关键地方了吗!再次欣赏经典比较,下一张幻灯片,真正的注册码=用户输入的注册码吗?,去掉所有限制,正版了,提示注册错误 Say 88,这里会有错误提示的噢,在这之前呢,就是比较啊,Y,N,决定何去何从比较,下面开始实战演习,我们以一个简单的破解密码为例子,准备好了吗? 下面我们边操作边解释一些名词,首先,拿起我们手中的武器,这里我选择ollydbg,这是一款德国人开发的动态调试工具,什么是动态调试工具呢?就象我们调试汇编程序用的debug,也是动态调试工具,相对的肯定还有静态的拉,当然,

8、经典的有ida和w32dasm,其实这里的ollydbg同时具有动态和静态特性,我们很快就会体验它的强大功能.开始精彩的演示,突破密码限制:,开始操作,回顾刚才的操作: 看到了什么,提示我们:“password wrong”, 用ollydbg载入这个动画,查找程序用到的字符串,找到password wrong,下个断点,还记得前面的理论吗? 再向前找找就可以找到比较的关键地方了,好的,找到的地址是:0040203F,我们看看前面的几条指令: 我们把这里的代码放到word下面分析 下面我们看看,程序的比较流程:,分析截取的部分关键代码,Eax = = 0,去掉密码限制,提示密码错误,Call

9、stricmp,Y,N,我们继续分析代码(真正的宝藏还没有挖出来呢) 0040202A PUSH DWORD PTR DS:ESI+A4 ; /s2 00402030 LEA EAX,DWORD PTR SS:EBP-34 ; | 00402033 PUSH EAX ; |s1 00402034 CALL DWORD PTR DS: ; Call之前有2个push操作,呵呵,压入的是什么呢? 不是密码吧,我们在00402034 下一个断点,运行看看, 看看eax是什么内容呢?“windows“,这个是什么呢? 输入看看,哇,果然是密码啊,不错,不错。 那么我们是否应该满足了呢?还没有! 如果我

10、要帮助朋友?而别人又没有我们的破解工具,也不会修改呢? 当然我们可以跟踪出密码,然后给别人就ok了,可是。 如果有几个动画呢?你每一个都要跟踪吗?那太麻烦了?,怎么办,我们要想出一种通用的办法?让计算机自动去完成呢?再次灵光一现,脑海里闪过一个词:,编程去完成,下面进入高级专题,破解补丁的编写,大家基本都学过c语言,可能学完了觉得没有什么用,我们今天就来用一用,我们不能白学啊 前面我们把je改成了jne,随便输入密码都可以了 实质是把机器码由74h改成75h,因为机器码和汇编指令是一一对应的,那么我们只要写个小东西,修改就可以了。我已经写好了,很短,很好懂。Crack.c,我们分析一下,#in

11、clude #include int main(void) FILE *fp_out; /要写入的文件 printf(“ntttt Copy Right by ngautn“); printf(“Crackingn“);,/打开文件test.exe if (fp_out = fopen(“test.exe“, “r+“)=NULL) printf(“error! Can not open test.exe!nn“); printf(“Press any key to continuen“); getchar(); exit(0); /定位到要修改的地方,这里是 0x203f,为什么呢?,开始:

12、获取偏移地址演示,开始实际操作,/找到那条je指令,既0040203F这个地址 /在底部可以看到offset是 0x203f fseek(fp_out, 0x203f, SEEK_SET); fputc(0x75, fp_out); /写入数据0x75,也就是把机器码74改为75, /汇编则是 je 改为了jne fclose(fp_out);,printf(“thanks for using, already crackedn“); printf(“nttttngaut All rights reserved.nn“); printf(“Press any key to continuen“

13、); getchar(); return 0; ,再次回顾补丁程序: 1.打开要修补的程序 2.定位到关键地方 3.写入数据,特别提示:实际操作的过程不是通用的,通用的是你聪明的大脑!,一个真正的Cracker必须熟练掌握以下几点: 1.德; 要有社会道德意识,必须遵守一些规范! 2.数学; 要尽可能的多学一些数学知识,必须具备扎实的数学基础! 3.外语; 最起码要有一定的英语阅读能力,当然掌握得越多越好! 4.计算机知识; 必须熟练掌握8088系列x86汇编语言和一门高级程序语言! 5.悟性; 必须具有一些触类旁通的本领,死记死背定律以及公式是不行的! 此仅为兄弟个人观点! 此只是算是Cra

14、cker,要想登堂入室,同志尚需努力! Ivanov 我缺乏的东西:2,3,4,5,所以我是普通菜鸟,中国最成功的破解组织 在1999年的11月,两个Crack技术的高手 - Sun Bird和JOJO,有感于当时中国虽然拥有着世界上最顶尖的Cracker技术和人才,却没有自己的 Group,所以很多国内顶尖的 Cracker 加入了国外的 Group(想想看国际上著名的 Group 中拥有多少中国的Cracker?)。所以他们携手创建了中国目前为止最成功,代表国内最高破解技术的Crack组织-CCG(CHiNA CrACKiNG GrOUp)即 中国破解联盟,发展最快的破解组织 2001年3

15、月,中国破解组织BCG(BeNGiNNErs CrACKiNG GrOUp)成立,短短的半年时间,BCG的成员已经发展到了47名,(现在远超过这个数,具体数目不详)由于BCG的初衷就正如它的名字一样“初学者破解组织”,所以有很多初学者由于无法搞定CCG的官方正式CrackMe都纷纷加入了BCG,当然BCG中也有非常多的高手,但是整体水平是无法和CCG相媲美的,而且BCG中的大多高手都是CCG组织的成员,但是由于其面向初学者,所以组织发展速度之快超乎人们的想象!,JOJO老大总结了一下Crack技术的几个阶段,再次转贴一下,并分析个组织需要的成员阶段。以飨初学者。 _ 第一个阶段应该算是爆破的阶

16、段(暂不考虑加壳的因素),绝大多数软件都可以通过修改来得到破解,它需要我们大致了解程序加密的过程并准确的找到其判断点,由于一些现成的工具和经验使我们找这些近乎成为机械的运动(尤其是在WINDOWS下的软件)所以爆破一个软件变的相对容易,但不是说一定是容易的。,第二个阶段:如果有一天你不是一上来就是拿着斧头砍来砍去而是从内存里嗅出了一串儿注册码的话,那就恭喜你进阶了。 第三个阶段应该是追出非明码比较的注册码了,它们通常多为多条件和计算型形式,这个时候你要拿出笔和纸来,在搞清楚部分算法的同时,找到合适的断点让软件的自动计算和你的手动计算结合一起算出注册码来。,第四个阶段就是作出通用的注册机。这需要

17、你完全搞明白注册算法和加密原理。通常这个过程是非常痛苦的。如果你对自己充满信心想体会一下的话那最好的选择就是AJJ的CRACKME2层层设防了。通常到这个时候你就可以算是一名高手了。,第五个阶段就是学习掌握一定的密码学知识,并了解常见的公共加密算法,做出利用成熟加密算法或密码学原理加密软件的注册机或提出解决之方法。如果你能达到这个境界,那么恭喜你可以成为一名职业选手了,你将和世界最知名的CRACKER平起平坐。 , jojo认为,如果你的Crack技术水平 可以达到第二个阶段,那么你就可以轻松的加入FCG了;如果你到达了第三个阶段通常就可以申请加入BCG;如果你到达了第四个或者第五个阶段而又不愿意听从老外的调遣的话,那么我觉得SunBird和JOJO老大,以及CCG的所有成员都会非常欢迎您的加入。,在我做完这个幻灯片的时候,至少要达到第3阶段才能加入 FCG,这个是时候你应该也可以加入DFCG和BCG 到第5阶段才能加入CCG和IPB(偏重于算法研究),谢谢大家观看,特别鸣谢程老师,再见!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1