分享
分享赚钱 收藏 举报 版权申诉 / 19

类型十招教你学会破解.pptx

  • 上传人:无敌
  • 文档编号:346254
  • 上传时间:2018-03-31
  • 格式:PPTX
  • 页数:19
  • 大小:120.44KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    十招教你学会破解.pptx
    资源描述:

    1、这样的_,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在 DOS 时代,基本上所有的程序都是工作在中断程序之上的,即几乎所有的 DOS 程序都会去调用各种中断来完,成任务。但是到了 WINDOWS 时代,程序没有权力直接调用中断,WINDOWS 系统提供了一个系统功能调用平台(API),

    2、就向 DOS 程序以中断程序为基础一样,WINDOWS程序以API为基础来实现和系统打交道,从而各种功能,所以 WINDWOS 下的软件破解其断点设置是以 API 函数为基础的,即当程序调用某个 API 函数时中断其正常运行,然后进行解 密 。 例 如 在 SOFTICE 中 设 置 下 面 的 断点:bpxGetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立即被SOFTICE拦截到,从而,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,被破解的程序停留在 GetDlgItemText的程序区,而 GetDlgItemTe

    3、xt 是处于 WINDWOS 自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了_!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的 SOFTICE。试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什,么有用的东西吗?(怎么样去加密是程序自己决定的,而不是调用系统功能实现的!),3.API:,即,ApplicationProgrammingInterface 的简写,中文叫应用程序编程接口,是一个系统定义函数的大集合,它提供了访问操作系统特征的方法。API包含了几百个应用程序调用的函数,这些函数执行所

    4、有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用 API 接口同 WINDOWS 打交道,无论什么样的应用程序,其底层最终都是通过调用各种 API 函数来实现各种功能的。通常 API 有两中基本形式:Win16 和 Win32。Win16 是原来的、API 的 16,似若来生愿.想一起去看星星,那最亮一颗是我心大雨位版本,用于 Windows3.1;Win32 是现在的、API的 32 位版本,用于 Windows95/98/NT/ME/2000。Win32 包括了 Win16,是 Win16 的超集,大多数函数的名字、用法都是相同的。16 位的 API 函

    5、数和32 位的 API 函数的区别在于最后的一个字母,例如我们设置这样的断点:bpxGetDlgItemText、bpxGetDlgItemTextA和 bpxGetDlgItemTextW,其,中,GetDlgItemText,是,16,位,API,函,数,GetDlgItemTextA 和 GetDlgItemTextW 是 32位 API 函数,而 GetDlgItemTextA 表示函数使用单字节,GetDlgItemTextW 表示函数使用双字节。,现在我们破解中常用到的是 Win32 单字节 API 函数,就是和 GetDlgItemTextA类似的函数,其它的两种(Win16AP

    6、I 和 Win32 双字节 API 函数)则比较少 见 。 Win32API 函 数 包 含 在 动 态 链 接 库(DynamicLinkLibraries,简称 DLLs)中,即包含在,kernel32.dll、user32.dll、gdi32.dll 和ctl32.dll中,这就是为什么我们要在softice中用,exp=C:windowssystemkernel32.dll 等,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,命令行将这些动态链接库导入 softice 中的原因。因为不这样做的话,我们就无法拦截到系统Win32API 函数调用了。,4.关于程序中码的存在方式:破解过程

    7、中我们都会去找程序中将输入的码和正确的码相比较的地方,然后通过对程序的跟踪、分析找到正确的码。但是正确的码通常在程序中以两种形态存在:显式的和隐式的,对于显式存在的码,我们可以直接在程序所处的内存中看到它,例如你可以直接在 SOFTICE 的数 据窗口中看 到类似297500523这样存在的码(这里是随意写的),对于码显式存在的软件破解起来比较容易;但是有些软件的程序中并不会直接将我们输入的码和正确的码进行比较,比如有可能将码换算成整数、或是将码拆开,然后将每一位码分开在不同的地方逐一进行比较,或者是将我们输入的码进行某种变换,再用某个特殊的程序进行验证等等。总之,应用程序会采取各种不同的复杂

    8、运算方式来回避直接的码比较,对于这类程序,我们通常要下功夫去仔细跟踪、分析每个程序功能,找到加密算法,然后才能破解它,当然这需要一定的 8086 汇编编程功底和很大的耐心与精力。,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,5.关于软件的破解方式:本人将破解方式分为两大类,即完全破解和暴力破解。所谓完全破解主要是针对那些需要输入码或密码等,软件来说的,如果我们能通过对程序的跟踪,找到正确的码,通过软件本身的功能正常了软件,这样的破解称之为完全破解;但如果有些软件本身没有提供功能,只是提供试用(DEMO),或是不能通过软件本身进行(例如需要获取另外一个专用的程序,通过 INTERNET 的

    9、等等),或者是软件本身的加密技术比较复杂,软件破解者的能力、精力、时间有限,不能直接得到正确的码,此时我们,需要去修改软件本身的程序码,即人为改淙砑?,脑诵蟹较颍?庋?钠平獬浦? 平狻?,6.关于破解教程中程序代码地址问题:破解教程中都会放上一部分程序代码以帮助讲解程序的分析方法 , 例如下面的一段程序代码:.,0167:00408033PUSH000167:00408035PUSHE,BX,0167:00408036CALLUSER32!EndDialog01,67:0040803CJMP0040812C.,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,在这里程序中的代码地址如 0167

    10、:00408033,其代码段的值(即 0167)有可能根据不同的电脑会有区别,不一定一模一样,但偏移值应该是固定的(即 00408033 不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。,7.关于如何设置断点的问题:正确恰当的设,置好断点对于快速有效,的解密非常重要,好的断点设置可以使我们,迅速找到关键的程序段,而不恰当的断点则会对解密造成不必要的精力消耗,甚至根本就不能拦截到程序的运行。但是具体什么时候用什么断点比较合适很难说,这需要自己用经验去累积,总的说来 bpxhmemcpy 这个万能断点对大多数码方式的软件都

    11、有用,初学者不妨多试试这个断点(通常我也是用这 个断点设置, 懒嘛_,哈哈。)。对于那些需要暴力破解的非码方式的软 件 , 通 常我 们应 该拦 截对 话框 ( 如bpxDialogBox)和消息框(如 bpxMessageBox(A)等。不论对于哪一类软件,当我们设置的断点均,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,没有效果时,可是试一下 bpxlockmytask,这个断点的作用是拦截任何一个按键的动作,具体常用的一些断点设置请参考破解常用断点设置一文。另外,在码的破解中通常需要输入用户名和码,一般说来用户名和密码都可以随意输入,但是根据我自己的经验,很多软件对于码都会逐位的进行

    12、处理,假如输入78787878这串数字,那么在跟踪程序的时候我们就无法知道我们当时所看到的78倒底是哪一个78,所以我比较喜欢用12345678这样的码输入方式,这样的话就就能知道程序是在对码的哪一位进行运算,同样,的对于那些需要输入较长序列号的软件,输入类似12345-67890-ABCDEF这样的序列号较好。不过有一点大家需要特别的注意:上面讲的码输入方式12345678是针对拦截 WIN32API 函数来说的,假如有些时候直接拦截 WIN32API 函数难以找到程序的突破口,而要借助于S指令在内存中寻找我们输入的用户名或码时,就最好不要采,用12345678作为码,因为内存中很可能有许多

    13、的12345678字符串,这样我们没有办法知道倒底我们要破解的程序使用的是哪一个12345678,所以我们应该选择一个不易和内存,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,数据相同的码,比如:74747474(本人喜欢用,意思嘛:去死去死。哈哈哈_),对应的搜索指令为:S30:0LFFFFFFFF。当然,以上只是我个人的习惯而已,具体用什么样的输入形式可以根据本人的爱好、习惯来定,不必拘泥于某一固定的模式。,8.关于如何跟踪程序的问题:初学者在开始学习解密的时候往往不知道怎么样去跟踪程序,怎么样找到码比较的地方,当面对长长的一堆程序代码时显得不知所措。通常软件的程序内部都会利用一个子程

    14、序(即 CALL*)去验证我,们输入的码正确与否,对于码显式存在的程序,一般都会将所输入的码和正确的码放进寄存器,然后调用验证子程序进行判断,将结果返回,应用程序根据子程序返回的结果决定是否成功,这样的程序经常具有如下的形式:,或或,*:*MOVEAX,*(PUSHEAX 等形式)*:*MOVEDX,*(PUSHEDX 等形式)*:*CALL*,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,*:*TESTEAX,EAX(或 TEST,AL,AL,或是没有这一句等形式),*:*JNZ*(或 JZ*,等形式),其中 EAX 和 EDX 指向的内存区域就是我们输入的码和正确的码,这里的寄存器 E

    15、AX 和 EDX 是随意写的,也可以是 ECX,EBX,EDI,ESI 等等。对于码隐式存在的程序,虽然不能直接看到正确的码,但是通常也是先将所输入的码地址放进某个寄存器,然后调用子程序去验证,破解时就需要,进入子程序去分析算法。总之,看到子程序(call*) 后 面 跟 着 跳 转 指 令(JNZ*或 JZ*)的地方我们就应该提高警惕,多用 DEAX(或 EBX、ECX、EDX、EDI、ESI.等)去看看寄存器指向的内存区域藏着什么东西。有一点大家要提醒大家:看见程序中使用下面这个函数是要注意,即 GetDlgItenInt,这个 API 函数的作用是将输入的文本转化为整数,所以这类程序中是不会有显示存在的码的,因为码被转换为整数了,程序通常会用 CMPECX,EDX 这种类型的指令去验证码的正确性,这里ECX和EDX,似若来生愿.想一起去看星星,那最亮一颗是我心大雨,中存的就是所输入码和正确码的整数形式,此时可以用?edx 和?ecx 看到其十进制形式,即我们输入的形式。,2df0f9c9c 凤凰平台,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:十招教你学会破解.pptx
    链接地址:https://www.docduoduo.com/p-346254.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开