在软件破解中,常用软件破解方法就是下断点快速找事件,在命令行BP下断点,shift+f9找事件然后再alt+f9返回。
快捷方法,ctrl+A分析代码。ctrl+N 找要下断的API函数。右键>查看调用结构。
然后分别F2下断,shift+F9运行。直接就可以看到不用alt+f9返回。即用BPX。
破解或者脱壳都ctrl+A分析一下这样比较好分析。
PS//A表示ANSI(短),W表示widechars即Unicode(宽)。
短字节使用比较频繁,所以大部分都是用A,如果A不能断下就试试用W。
“*****”表示常用API
拦截字符串相关:
bp GetDlgItemTextA(W) ->获取指定输入框输入字符串*****
bp GetDlgItemInt ->获取对话框整数值
bp GetWindowTextA(W) ->取得一个窗体的标题(caption)文字,或者一个控件的内容*****
bp GetDIgItem ->获取按钮事件代码(断输入框)*****
bp GetwindowTextLengthA ->调查窗口标题文字或控件内容的长短******
bp GetWindowWord ->获得指定窗口结构的信息
拦截对话框相关:
bp MessageBeep ->播放一个系统声音。系统声音的分配方案是在控制面板里决定的
bp MessageBoxA(W) ->创建消息框*****
bp MessageBoxExA(W) ->创建消息框
bp MessageBoxIndirect(A) ->创建定制消息框
bp DialogBox ->从资源模板建立一模态对话窗
bp DialogBoxParamA(W) ->从资源模板建立一模态对话窗
bp DialogBoxIndirect ->从内存模板建立一模态对话窗
bp DialogBoxIndirectParam ->从内存模板建立一模态对话窗
bp CreateDialog ->从资源模板建立一非模态对话窗
bp CreateDialogParam(A) ->从资源模板建立一非模态对话窗
bp CreateDialogIndirect ->从内存模板建立一非模态对话窗
bp CreateDialogIndirectParam(A) ->从内存模板建立一非模态对话窗
bp EndDialog ->结束一模态对话窗
bp GreateWindowExA(W) ->获取指定设备场景的窗口范围
bp ShowWindow ->控制窗口的可见性
bp UpdateWindow ->强制立即更新窗口
对于VB的程序用bp MessageBoxA是无法断下来的,用bp rtcMsgBox
拦截窗口相关:
bp CreateWindow ->创建窗口
bp CreateWindowEx(A) ->创建窗口
bp ShowWindow ->显示窗口
bp UpdateWindow ->更新窗口
bp GetWindowTExt(A) ->获取窗口文本
拦截警告声相关:
bp MessageBeep ->播放一个系统声音。系统声音的分配方案是在控制面板里决定的
拦截剪贴板相关:
bp GetClipboardData ->获取剪贴板数据
功能限制拦截相关:
bp EnableMenuItem ->允许、禁止或变灰指定的菜单条目
bp EnableWindow ->允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)
拦截广告相关:
bp ShellExecuteExA ->查找与指定文件关联在一起的程序的文件名。程序自己打开网页,可以直接搜索打开网页的地址。然后向上查找关键跳就OK了。
时间处理函数相关:
bp CompareFileTime ->比较两文件时间
bp GetFileTime ->获取文件建立,最后访问,修改时间
bp GetLocalTime ->获取当前本地时间*****
bp GetSystemTime ->获取当前系统时间
bp GetCurrentTime ->获取当前时间(16位)
bp GetTickCount ->获取windows启动至现时毫秒
bp SetFileTime ->设置文件时间
bp SetLocalTime ->设置本地时间 dExecutableA 查找与一个指定文件关联在一起的程序的文件名
bp SetTimer ->创建定时器
bp TimerProc ->定时器超时回调函数
软件狗相关:
bpio -h 278R
bpio -h 378R
bp CreateFileA ->开和创建文件、管道、邮槽、通信服务、设备以及控制台
bp DeviceIOControl ->对设备执行指定的亲作
bp FreeEnvironmentStringsA ->翻译指定的环境字串块(对付HASP非常有效)
注册表相关:
bp RegOpenKeyA ->打开一个现有的注册表项 *****
bp RegOpenKeyExA ->打开一个现有的注册表项
bp RegCreateKeyA ->在指定的项下创建或打开一个项
bp RegCreateKeyExA ->在指定项下创建新项的更复杂的方式
bp RegDeleteKeyA ->删除现有项下方一个指定的子项
bp RegDeleteValueA ->删除指定项下方的一个值
bp RegQueryValueA ->获取一个项的设置值
bp RegQueryValueExA ->获取一个项的设置值
bp RegSetValueA ->设置指定项或子项的值
bp RegSetValueExA ->设置指定项的值
bp RegCloseKey ->关闭系统注册表中的一个项(或键)
INI初始化文件相关:
bp GetPrivateProfileStringA ->为初始化文件中指定的条目取得字串*****(凡是重启验证多数都有效)
bp GetPrivateProfileInt ->为初始化文件(.ini文件)中指定的条目获取一个整数值
bp WritePrivateProfileStringA ->在初始化文件指定小节内设置一个字串
bp WritePrivateProfileInt ->初始化文件中一个指定的小节设置所有项名和值
key文件相关:
bp Getprivateprofileint ->为初始化文件中指定的条目获取一个整数值 *****
bp ReadFile ->从文件中读出数据
bp CreateFileA ->开和创建文件、管道、邮槽、通信服务、设备以及控制台
win进程操作: 获取(返回)
bp FindExecutableA ->查找与一个指定文件关联在一起的程序的文件名
bp FreeLibray ->释放指定的动态链库
bp GetCurrentProcess ->获取当前进程的一个伪(虚拟)句柄*****(脱壳常用断点)
bp GetCurrentProcessId ->获取当前进程一个唯一的标识符
bp OpenMutexA ->使程序把父进程当成子进程运行(双进程脱壳)
bp GetCurrentThreadId ->返回当前进程 ID *** 壳常用来返回OEP
bp GetCurrentThread ->获取当前线程的一个伪句柄
bp GetExitCodeProces ->获取一个已结束进程的退出代码
bp GetExitCodeThread ->获取一个已结束线程的退出代码
bp GetModuleHandleA ->获取一个应用程序或动态链接库的模块句柄*****(处理Magic JMP经常用这个)
bp GetPriorityClassA ->获取特定进程的优先级别
bp LoadLibraryA ->载入指定的动态链接库,并将它映射到当前进程使用的地址空间
bp LoadLibraryExA ->装载指定的动态链接库,并为当前进程把它映射到地址空间
bp LoadModule ->载入一个windows应用程序,并在指定的环境中运行
bp CreateProcessA ->创建一个新进程
bp TerminateProcess ->结束一个进程
bp ExitProcess ->以干净的方式关闭一个进程
bp ResumeThread ->恢复线程的执行(脱捆绑壳)
bp SuspendTread ->暂停线程(脱捆绑壳)
bp VirtualAlloc ->申请空间存放资源(脱捆绑壳)
bp VirtualFree ->释放指定地址资源(脱捆绑壳)
bp VirtualProtect ->保护指定地址资源(脱捆绑壳)
CD-ROM或磁盘相关:
bp GetDiskFreeSpaceA ->获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
bp GetDiskFreeSpaceExA ->获取与一个磁盘的组织以及剩余空间容量有关的信息
bp GetFullPathNameA ->获取指定文件的详细路径
bp GetDriveTypeA ->判断一个磁盘驱动器的类型
bp GetLogicalDrives ->判断系统中存在哪些逻辑驱动器字母
bp GetVolumeInformat ->ionA 获取与一个磁盘卷有关的信息
bp GetWindowsDirectoryA ->获取Windows目录的完整路径名
bp GetSystemDirectoryA ->取得Windows系统目录(即System目录)的完整路径名
bp GetFileAttributesA(W) ->判断指定文件的属性
bp GetFileSize ->判断文件长度
bp GetDriveType ->判断一个磁盘驱动器的类型
bp GetLastError ->返回扩充出错代码
bp ReadFile ->从文件中读出数据
光盘破解相关:
win16:
bp getvolumeinformation ->获取与一个磁盘卷有关的信息
bp getdrivetype ->判断一个磁盘驱动器的类型
win32:
bp GetDriveTypeA ->获取磁盘驱动器类型
bp GetLogicalDrives ->获取逻辑驱动器符号
bp GetFullPathNameA ->获取指定文件的详细路径
bp GetWindowsDirectoryA ->获取Windows目录的完整路径名
bp GetLogicalDriveStringsA ->获取当前所有逻辑驱动器的根驱动器路径
文件访问相关:
bp lcreat ->创建一个文件
bp CreateDirectoryA ->创建一个新目录
bp CreateDirectoryExA ->创建一个新目录
bp CreateFileMappingA ->创建一个新的文件映射对象
bp CreateFileA ->创建或打开文件、管道、邮槽、通信服务、设备以及控制台 *****
bp RemoveDirectoryA ->删除指定目录
bp DeleteFileA ->删除指定文件
bp lopen ->以二进制模式打开指定的文件
bp OpenFile ->打开文件,能执行大量不同的文件操作 (32位)
bp OpenFileMappingA ->打开一个现成的文件映射对象
bp SetEndOfFile ->针对一个打开的文件,将当前文件位置设为文件末尾
bp CloseHandle ->关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
bp lclose ->关闭指定的文件
bp ReadFile ->从文件中读出数据(32位) *******
bp ReadFileEx ->与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
bp lread ->将文件中的数据读入内存缓冲区
bp hread ->将文件中的数据读入内存缓冲区 *******
bp lwrite ->将数据从内存缓冲区写入一个文件
bp hwrite ->将数据从内存缓冲区写入一个文件
bp WriteFile ->将数据写入一个文件
bp WriteFileEx ->与WriteFile类似
bp MapViewOfFile ->将一个文件映射对象映射到当前应用程序的地址空间
bp MapViewOfFileEx ->将一个文件映射对象映射到当前应用程序的地址空间
bp FindFirstFileA ->根据文件名查找文件
bp SearchPathA ->查找指定文件
bp MoveFileA ->移动文件
bp CopyFileA ->复制文件
bp SetCurrentDirectoryA ->设置当前目录
bp SetFileAttributesA ->设置文件属性
bp llseek ->设置文件中进行读写的当前位置
bp SetFilePointer ->在一个文件中设置当前的读写位置
bp SetFileTime ->设置文件的创建、访问及上次修改时间
bp GetFileTime ->取得指定文件的时间信息
bp CompareFileTime ->对比两个文件的时间
bp GetBinaryTypeA ->判断文件是否可以执行
bp GetFileAttributesA ->判断指定文件的属性
bp GetFileSize ->判断文件长度
bp FindNextFileA ->根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
bp FindClose ->关闭由FindFirstFile函数创建的一个搜索句柄
bp GetFileType ->在给出文件句柄的前提下,判断文件类型
bp GetSystemDirectory ->取得Windows系统目录(即System目录)的完整路径名
VB函数:
………………………………………………………………
VB 破解快速找事件 ctrl+B搜索816C24 然后分别在他上面的JMP设置F2断点,运行注册模块进行注册。
在那个JMP中断就是从这个JMP开始调用注册模块。
在函数中的缩写:
bool ->布尔型数据(TRUE 或 FALSE)
str ->字符串型数据 STRING
i2 ->字节型数据或双字节整型数据 BYTE or Integer
ui2 ->无符号双字节整型数据
i4 ->长整型数据(4字节) Long
r4 ->单精度浮点型数据(4字节) Single
r8 ->双精度浮点型数据(8字节) Double
cy ->(8 个字节)整型的数值形式 Currency
var ->变量 Variant
fp ->浮点数据类型 Float Point
cmp ->比较 compare
comp ->比较 compare
Eq ->相等 equal
Ne ->不等于
Le ->小于或等于
Lt ->小于
Ge ->大于或等于
Gt ->大于