`
Zsb007
  • 浏览: 59347 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

od使用技巧

阅读更多
OD常用断点

常用断点(OD中)

拦截窗口:
bp CreateWindow 创建窗口
bp CreateWindowEx(A) 创建窗口
bp ShowWindow 显示窗口
bp UpdateWindow 更新窗口
bp GetWindowText(A) 获取窗口文本

拦截消息框:
bp MessageBox(A) 创建消息框
bp MessageBoxExA 创建消息框
bp MessageBoxIndirect(A) 创建定制消息框
bp IsDialogMessageW

拦截警告声:
bp MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)

拦截对话框:
bp DialogBox 创建模态对话框
bp DialogBoxParam(A) 创建模态对话框
bp DialogBoxIndirect 创建模态对话框
bp DialogBoxIndirectParam(A) 创建模态对话框
bp CreateDialog 创建非模态对话框
bp CreateDialogParam(A) 创建非模态对话框
bp CreateDialogIndirect 创建非模态对话框
bp CreateDialogIndirectParam(A) 创建非模态对话框
bp GetDlgItemText(A) 获取对话框文本 作用是得指定输入框输入字符串
bp GetDlgItemInt 获取对话框整数值

拦截剪贴板:
bp GetClipboardData 获取剪贴板数据

拦截注册表:
bp RegOpenKey(A) 打开子健
bp RegOpenKeyEx 打开子健
bp RegQueryValue(A) 查找子健
bp RegQueryValueEx 查找子健
bp RegSetValue(A) 设置子健
bp RegSetValueEx(A) 设置子健

功能限制拦截断点:
bp EnableMenuItem 禁止或允许菜单项
bp EnableWindow 禁止或允许窗口

拦截时间:
bp GetLocalTime 获取本地时间
bp GetSystemTime 获取系统时间
bp GetFileTime 获取文件时间
bp GetTickCount 获得自系统成功启动以来所经历的毫秒数
bp GetCurrentTime 获取当前时间(16位)
bp SetTimer 创建定时器
bp TimerProc 定时器超时回调函数
GetDlgItemInt 得指定输入框整数值
GetDlgItemText 得指定输入框输入字符串
GetDlgItemTextA 得指定输入框输入字符串

拦截文件:
bp CreateFileA 创建或打开文件 (32位)
bp OpenFile 打开文件 (32位)
bp ReadFile 读文件 (32位)
bp WriteFile 写文件 (32位)
GetModuleFileNameA
GetFileSize
Setfilepointer
fileopen
FindFirstFileA
ReadFile

拦截驱动器:
bp GetDriveTypeA 获取磁盘驱动器类型
bp GetLogicalDrives 获取逻辑驱动器符号
bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器的根驱动器路径

★★VB程序专用断点★★

文件长度:RtcFileLen
bp __vbaFreeStr 对付VB程序重启验证
bp __vbaStrCmp 比较字符串是否相等
bp __vbaStrComp 比较字符串是否相等
bp __vbaVarTstNe 比较变量是否不相等
bp __vbaVarTstEq 比较变量是否相等
bp __vbaStrCopy 复制字符串
bp __vbaStrMove 移动字符串
bp MultiByteToWideChar ANSI字符串转换成Unicode字符串
bp WideCharToMultiByte Unicode字符串转换成ANSI字符串

=============== ================

密码常用中断
Hmemcpy (win9x专用)
GetDlgItemTextA
GetDlgItemInt
vb:
getvolumeinformationa  

vbastrcomp (trw)
Bpx __vbaStrComp (记得是两个 ’_’)
MSVBVM60!_vbastrcomp|sofice
MSVBVM50! | 

VBAI4STR 

Ctrl+D
bpx msvbvm60!__vbastrcomp do "d *(esp+0c)"(softice)
按几次F5出册码出来了。
bpx regqueryvalueexa do "d esp->8"(trw) 

vbaVarTstEq 判断是否注册的函数
(0042932F 66898580FEFFFF mov word ptr [ebp+FFFFFE80], ax
改为0042932F 66898580FEFFFF mov word ptr [ebp+FFFFFE80], bx)

时间常用中断
GetSystemTime
GetLocalTime
GetTickCount
vb:
rtcGetPresentDate //取得当前日期 

杀窗常用中断
Lockmytask (win9x专用)
bp ExitProcess 退出进程
DestroyWindow
mouse_event (鼠标中断)
postquitmessage (Cracking足彩xp,很有用^_^)
vb:
_rtcMsgBox 

ini文件内容常用中断
GetPrivateProfileStringA
GetPrivateProfileProfileInt 

key文件:
getprivateprofileint
ReadFile
CreateFileA 

注册表常用中断
RegQueryvalueA
RegQueryvalueExA 

狗加密中断
BPIO -h 278 R
BPIO -h 378 R  

其它常用函数断点
CreateFileA (读狗驱动程序),
DeviceIOControl,
FreeEnvironmentStringsA (对付HASP非常有效).
Prestochangoselector (16-bit HASP’s), ’7242’ 查找字符串 (对付圣天诺).具体含义参考下面的范例。

光盘破解中断
16:
getvolumeinformation
getdrivetype
int 2fh (dos)
32:
GetDriveTypeA
GetFullPathNameA
GetWindowsDirectoryA 

读磁盘中断
GETLASTERROR 返回扩充出错代码  

限制中断
EnableMenuItem 允许、禁止或变灰指定的菜单条目
EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)  

不知道软盘中断是什么了?还有其它特殊中断,不知道其他朋友可否说一下了?
如ockmytask and mouse_event,这些就不是api32函数?
win9x 与 win2k进行破解,以上中断有部分已经不能用了?
不知道在win2k上,以上常用中断函数是什么了?
也就是问密码、时间、窗口、ini、key、注册表、加密狗、光盘、软盘、限制等!
了解常用的中断,对破解分析可以做到事半功倍!
请大家说一下!还有如何破解了某个软件时,一重启就打回原形?
不知道下什么中断了?可以分为三种情况:
1.比较可能在注册表中
2.比较在特殊文件(*.key *.ini *.dat等)
3.比较在程序中,没有任何错误提示或者反译也找不到明显字符(这个就是我想问的) 

还有一个是最难的,就是去掉水印!
也可以三种情况:
A.水印是位图文件(bitblt,creatBITMAP等位图函数)
B.水印是明显字符(反译分析)
C.水印不是明显字符(如:This a demo!它只是显示在另一个制作文件上,可是*.htm *.exe等)
C.才是最难搞,也是很多人想知道的!包括我在内。不知道高手们有何提示了? 

广告条:
可以分两种情况:
A.从创建窗口进手,可以用到movewindow或者其它窗口函数!
B.从位图进手,也可以用到bitblt或者其它位图函数!
最后可以借助一些现有工具(如:api27,vwindset,freespy之类的工具) 

那要看是在哪作的标记,通常是在注册表中留下信息!
在softice中就要用bpx regqueryvalueexa do "d esp->8"来中断看看,
在trw中要用bpx regqueryvalueexa do "d*(esp+8)"来中断看看。
还有的是在本目录下留下注册信息,常见的有.dat .ini .dll等等,
我是用bpx readfile来中断的,还有的是在windows目录下留下注册信息。
你可以借助专用的工具帮助你查看,入filemon等!  

vb: 

1、__vbaVarTstNe //比较两个变量是否不相等
2、rtcR8ValFromBstr //把字符串转换成浮点数
3、rtcMsgBox 显示一信息对话框
4、rtcBeep //让扬声器叫唤
5、rtcGetPresentDate //取得当前日期  

针对字串:
__vbaStrComp
__vbaStrCmp
__vbaStrCompVar
__vbaStrLike
__vbaStrTextComp
__vbaStrTextLike
针对变量:
__vbaVarCompEq
__vbaVarCompLe
__vbaVarCompLt
__vbaVarCompGe
__vbaVarCompGt
__vbaVarCompNe

VB的指针:
THROW  

VB DLL还调用了oleauto32.dll中的部分函数。oleauto32.dll是个通用的proxy/stub DLL,其每个函数的原型在<oleauto.h>中定义,并在MSDN中有详细描述。这也有助于理解VB DLL中的函数的作用。  

举例:  

LEA EAX, [EBP-58]
PUSH EAX
CALL [MSVBVM60!__vbaI4Var]  

执行call之前敲dd eax+8,得到的值为3;
执行完call之后,eax = 3
从而可知__vbaI4Var的作用是将一个VARIANT转换为I4(即一个长整数)。 

__vbaVarTstNe似乎是用来进行自校验的,正常情况下返回值为0。
已知适用的软件有:网络三国智能机器人、音乐贺卡厂。当这两个软件被脱壳后都回出错,网络三国智能机器人会产生非法*作,而音乐贺卡厂会告诉你是非法拷贝,通过修改__vbaVarTstNe的返回值都可让它们正常运行。
所以当您遇到一个VB软件,脱壳后无法正常运行,而又找不出其它问题时,可试试拦截这个函数,说不定会有用哦。8-) 

API不太知道,也许可以通过BIOS在98平台上读写扇区,不过在2000/NT下可以通过内黑ATAPI,HAL写扇区
machoman[CCG]
bpx WRITE_PORT_BUFFER_USHORT
NT/2000下这个断点,当edx=1f0h,时,可以看见EDI地址内数据为扇区位置数据,必须先 在winice.dat 中装入hal.sys 详细内容看ATAPI手册  

补充篇:
关于对VB程序和时间限制程序的断点
CrackerABC
先给出修改能正确反编译VB程序的W32DASM的地址:
======================
offsets 0x16B6C-0x16B6D  

修改机器码为: 98 F4
======================  

VB程序的跟踪断点:  

============
MultiByteToWideChar,
rtcR8ValFromBstr,
WideCharToMultiByte,
__vbaStrCmp
__vbaStrComp
__vbaStrCopy
__vbaStrMove
__vbaVarTstNe
rtcBeep
rtcGetPresentDate (时间API)
rtcMsgBox
=========  

时间限制断点:  

================
CompareFileTime
GetLocalTime
GetSystemTime
GetTimeZoneInformation
msvcrt.diffTime()
msvcrt.Time()
================  

一般处理

bpx hmemcpy
bpx MessageBox
bpx MessageBoxExA
bpx MessageBeep
bpx SendMessage 

bpx GetDlgItemText
bpx GetDlgItemInt
bpx GetWindowText
bpx GetWindowWord
bpx GetWindowInt
bpx DialogBoxParamA
bpx CreateWindow
bpx CreateWindowEx
bpx ShowWindow
bpx UpdateWindow 

bmsg xxxx wm_move
bmsg xxxx wm_gettext
bmsg xxxx wm_command
bmsg xxxx wm_activate  

时间相关
bpint 21 if ah==2A (DOS)
bpx GetLocalTime
bpx GetFileTime
bpx GetSystemtime  

CD-ROM 或 磁盘相关
bpint 13 if ah==2 (DOS)
bpint 13 if ah==3 (DOS)
bpint 13 if ah==4 (DOS)
bpx GetFileAttributesA
bpx GetFileSize
bpx GetDriveType
bpx GetLastError
bpx ReadFile
bpio -h (Your CD-ROM Port Address) R  

软件狗相关
bpio -h 278 R
bpio -h 378 R  

键盘输入相关
bpint 16 if ah==0 (DOS)
bpint 21 if ah==0xA (DOS)  

文件访问(自校验)相关
bpint 21 if ah==3dh (DOS)
bpint 31 if ah==3fh (DOS)
bpint 21 if ah==3dh (DOS)
bpx ReadFile
bpx WriteFile
bpx CreateFile
bpx GetFileSize
bpx SetFilePointer
bpx GetSystemDirectory  

INI 初始化文件相关
bpx GetPrivateProfileString
bpx GetPrivateProfileInt
bpx WritePrivateProfileString
bpx WritePrivateProfileInt  

注册表相关
bpx RegCreateKey
bpx RegDeleteKey
bpx RegQueryvalue
bpx RegCloseKey
bpx RegOpenKey  

注册标志相关
bpx cs:eip if EAX==0  

内存标准相关
bpmb cs:eip rw if 0x30:0x45AA==0  

显示相关
bpx 0x30:0x45AA do "d 0x30:0x44BB"
bpx CS:0x66CC do "? EAX"

查找窗口
FindWindowA

BP SetFilePointer

bpx hmemcpy ;破解万能断点,拦截内存拷贝动作(注意:Win9x专用断点)
bpx Lockmytask ;当你用其它断点都无效时可以试一下,这个断点拦截按键的动作(Win9x专用)

实在找不到断点可以试下面的方法:

bmsg handle wm_gettext ;拦截注册码(handle为对应窗口的句柄)
bmsg handle wm_command ;拦截OK按钮(handle为对应窗口的句柄)

拦截窗口:

bpx CreateWindow ;创建窗口
bpx CreateWindowEx(A/W) ;创建窗口
bpx ShowWindow ;显示窗口
bpx UpdateWindow ;更新窗口
bpx GetWindowText(A/W) ;获取窗口文本

拦截消息框:

bpx MessageBox(A/W) ;创建消息框
bpx MessageBoxExA(W) ;创建消息框
bpx MessageBoxIndirect(A/W) ;创建定制消息框
分享到:
评论

相关推荐

    OD跟踪调试与技巧(外挂编)

    本文将深入探讨使用OllyDBG(简称OD)进行程序跟踪调试的技巧和方法,帮助读者更好地理解软件运行机制,提高调试效率。 #### OllyDBG简介 OllyDBG是一款强大的32位处理器反汇编器和调试器,主要用于Windows平台上...

    小甲鱼OD使用教程所有课件源代码及使用的程序

    小甲鱼是一位知名的IT教育者,他提供的这个教程集合包含了课件源代码和配套的程序,旨在帮助学习者深入理解OD的使用技巧和逆向分析技术。 【描述】中提到的"所有课件源代码及使用的程序"意味着这个压缩包不仅包括了...

    OD使用教程

    这篇教程主要针对的是对OD(Oracle Database)的初学者,旨在帮助他们掌握基础的使用技巧和理解概念。 首先,我们需要了解数据库的基本概念。数据库是一个组织和存储数据的系统,它能够按照用户需求提供数据的访问...

    OD实用技巧

    7. 视频学习:"1.1.5 OD实用技巧.wmv"可能是一个视频教程,通过实际操作演示上述技巧,视觉化的教学方式有助于更好地理解和掌握。 总的来说,掌握OllyDbg的实用技巧,不仅可以提高你在逆向工程中的技能,还能使你在...

    OD使用完全教程、OD使用

    ### OD使用完全教程知识点概述 OllyDbg(简称OD)是一款非常强大的调试工具,尤其在寻找函数调用(CALL)及进行反汇编方面表现出色。本文将详细介绍OllyDbg的基本使用方法及其丰富的快捷键操作技巧。 #### 一、...

    OD+PEID+OD教程

    OD(OllyDbg)是一款著名的16位和32位Windows程序的调试器,它在逆向工程领域被广泛使用。PEID则是一个流行的可执行文件标识工具,能够识别出许多已知的保护和混淆技术。这个"OD+PEID+OD教程"可能是一个关于如何使用...

    脱壳脚本OD使用,右键,脚本,打开某个脚本即可脱壳!!!.rar

    本文将深入探讨使用OllyDbg(OD)进行脚本脱壳的技术,这是一种流行且强大的逆向工程工具。 首先,"脱壳"是指移除软件的保护层,通常称为壳,这些壳可能是为了防止程序被反编译或修改。在反病毒和安全研究中,脱壳...

    TRANSCAD使用技巧(od表、id转换、合并分区).pdf

    本文将详细介绍TransCAD中的一些重要使用技巧,包括OD表、ID转换、合并分区等。 首先,我们需要了解什么是OD表。OD表,即起点-终点矩阵(Origin-Destination Matrix),它是一种用于表示各交通小区之间交通流动量的...

    od端修改,od使用教程,Java源码.zip

    7. **最佳实践**:分享一些使用OD时的经验和技巧,帮助开发者避免常见错误。 在这个压缩包中,你将找到所有这些信息的Java源码版本,这意味着你可以深入到代码层面去学习和理解OD。这不仅有助于你成为OD的熟练用户...

    64位下的OD

    2. **掌握调试技巧**:如使用堆栈分析、动态追踪、数据流分析等技术,以深入理解程序行为。 3. **插件选择**:选择支持64位的OD插件,以扩展其功能,如用于反混淆、动态分析或自动化任务的插件。 4. **安全问题**...

    OC和OD门上拉电阻阻值的计算技巧

    ### OC和OD门上拉电阻阻值的计算技巧 #### 一、OC和OD门的基本概念及特性 OC门(Open Collector Gate)是指集电极开路的TTL(晶体管-晶体管逻辑)门电路,其核心特征在于集成电路内部输出管的集电极并未直接与电源...

    小甲鱼 OD使用教程registerMe.exe

    【标题】"小甲鱼 OD使用教程registerMe.exe" 是一个针对逆向工程初学者的教程,主要聚焦于Ollydbg(简称OD)这款著名的动态调试器的使用。Ollydbg是一个流行的Windows平台下的十六进制编辑器和调试工具,它能够帮助...

    OD使用教程 PPT课件.pptx

    本资源是关于OD使用教程的PPT课件,主要介绍了OD的使用方法和调试技巧。 知识点1:准备工作 * 在Windows中,拆解一个程序要比拆解一个DOS程序容易得多,因为在Windows中,只要API函数被使用,想对寻找蛛丝马迹的人...

    利用OD去除烦人的网页弹窗

    网页弹窗是许多用户在...总的来说,利用OD去除网页弹窗并修改软件文字涉及到程序逆向工程、调试技巧和对二进制代码的理解。这些技术在软件开发、安全研究和逆向工程领域都有广泛的应用,但使用时需遵守相关法律法规。

    CE+OD找基址详解

    - **OD的作用**:一旦通过CE找到了可疑的地址,可以使用OD进一步分析这些地址的用途以及它们是如何被程序访问和使用的。 - **结合使用**:通过CE快速定位后,使用OD对目标地址进行更深入的分析,包括查看内存地址中...

    OD专用脱壳脚本

    使用者需要将这个脚本导入到OD环境中,根据脚本的说明文档(如果有的话)来正确配置和使用它。 总结来说,OD专用脱壳脚本是逆向工程领域的一个强大工具,它利用脚本技术实现了自动化脱壳,简化了复杂的人工分析过程...

    华为OD笔试题合集.zip 华为OD笔试题合集.zip

    2. **通信和团队协作**:OD工作涉及与多方沟通协调,因此通信技巧和团队协作能力至关重要。题目可能要求分析不同沟通场景下的应对策略,或者评估团队冲突解决的方法。 3. **IT基础知识**:华为OD笔试可能包含基础的...

    ### 华为OD(OceanBase Distributed Database)概念、使用技巧、优缺点

    ### 华为OD(OceanBase Distributed Database)概念、使用技巧、优缺点 #### 概念解析 华为OD,即OceanBase Distributed Database,是一款由华为研发的分布式数据库系统,旨在满足大规模数据存储及高并发访问的...

    OD调试器源码

    3. **反调试技术**:许多程序会使用反调试技巧来防止被调试,OD调试器需要克服这些障碍。源码中可能会包含识别和规避反调试策略的方法。 4. **汇编语言和指令分析**:调试器的核心功能之一是解析和解释CPU指令。...

Global site tag (gtag.js) - Google Analytics