这样的^_^,现在说起来都不好意思喔!)。所
谓程序的领空,说白了就是程序自己的地方,也
就是我们要破解的程序自己程序码所处的位置。
也许你马上会问:我是在程序运行的时候设置的
断点,为什么中断后不是在程序自己的空间呢?
因为每个程序的编写都没有固定的模式,所以我
们要在想要切入程序的时候中断程序,就必须不
依赖具体的程序设置断点,也就是我们设置的断
点应该是每个程序都会用到的东西。在 DOS 时代,
基本上所有的程序都是工作在中断程序之上的,
即几乎所有的 DOS 程序都会去调用各种中断来完
成任务。但是到了 WINDOWS 时代,程序没有权力
直接调用中断,WINDOWS 系统提供了一个系统功
能调用平台(API),就向 DOS 程序以中断程序为基
础一样,WINDOWS程序以API为基础来实现和系统
打交道,从而各种功能,所以 WINDWOS 下的软件破
解其断点设置是以 API 函数为基础的,即当程序
调用某个 API 函数时中断其正常运行,然后进行
解密。例如在 SOFTICE 中设置下面的断
点:bpxGetDlgItemText(获取对话框文本),当我
们要破解的程序要读取输入的数据而调用
GetDlgItemText时,立即被SOFTICE拦截到,从而
,那最亮一颗是我心大雨
被破解的程序停留在 GetDlgItemText的程序区,
而 GetDlgItemText 是处于 WINDWOS 自己管理的
系统区域,如果我们擅自改掉这部分的程序代码,
那就大祸临头了^_^!所以我们要从系统区域返
回到被破解程序自己的地方(即程序的领空),才
能对程序进行破解,至于怎样看程序的领空请看
前面的 SOFTICE。试想一下:对于每个程序都会调
用的程序段,我们可能从那里找到什
么有用的东西吗?(怎么样去加密是程序自
己决定的,而不是调用系统功能实现的!)
:
即
ApplicationProgrammingInterface 的简写,中
文叫应用程序编程接口,是一个系统定义函数的
大集合,它提供了访问操作系统特征的方法。API
包含了几百个应用程序调用的函数,这些函数执
行所有必须的与操作系统相关的操作,如内存分
配、向屏幕输出和创建窗口等,用户的程序通过
调用 API 接口同 WINDOWS 打交道,无论什么样的
应用程序,其底层最终都是通过调用各种 API 函
数来实现各种功能的。通常 API 有两中基本形
式:Win16 和 Win32。Win16 是原来的、API 的 16
,那最亮一颗是我心大雨
位版本,用于 ;Win32 是现在的、API
的 32 位版本,用于 Windows95/98/NT/ME/2000。
Win32 包括了 Win16,是 Win16 的超集,大多数函
数的名字、用法都是相同的。16 位的 API 函数和
32 位的 API 函数的区别在于最后的一个字母,例
如我们设置这样的断点:bpxGetDlgItemText、
bpxGetDlgItemTextA和 bpxGetDlgItemTextW,其
中
GetDlgItemText
是
16
位
API
函
数,GetDlgItemTextA 和 GetDlgItemTextW 是 32
位 API 函数,而 GetDlgItemTextA 表示函数使用
单字节,GetDlgItemTextW 表示函数使用双字节。
现在我们破解中常用到的是 Win32 单字节 API 函
数,就是和 GetDlgItemTextA类似的函数,其它的
两种(Win16API 和 Win32 双字节 API 函数)则比较
少见。 Win32API 函数包含在动态链接库
(DynamicLinkLibraries,简称 DLLs)中,即包含
在
、、 和
,这就是为什么我们要在softice中
用
exp=C:\windows\system\ 等
,那最亮一颗是我心大雨
命令行将这些动态链接库导入 softice 中的原
因。因为不这样做的话,我们就无法拦截到系统
Win32API 函数调用了。
:破解过程中我
们都会去找程序中将输入的码和正确的码相比
较的地方,然后通过对程序的跟踪、分析找到正
确的码。但是正确的码通常在程序中以两种形态
存在:显式的和隐式的,
十招教你学会破解 来自淘豆网m.daumloan.com转载请标明出处.