OS : Mac OSX 10.6 a432
工具:Xcode中的otool、 gdb;文本编辑器;hex编辑器;计算器;终端
目标:以下为“或”的关系
接着,使用gdb,用attach “进程id”
然后,bt查看函数调用栈,找到可疑函数后,使用up
继续,用si等命令单步跟踪,set等命令改变参数的值
再来,使用disassemble命令,查看确认要修改的二进制字符串
最后,用十六进制编辑器查找并修改二进制字符串
2. 动静结合,主要工具otool + gdb
a. otool -tV "目标程序" > dis.asm
b. 文本编辑器打开 dis.asm,查找可疑的函数
c. 使用gdb打开目标程序,并在可疑的函数中设置断点,如 b *0x00001234
d. run 运行程序,断点处,si 等跟踪, set 设置关键参数值
e. 用计算器计算需要修改的序列偏移,或disassemble命令
f. 用十六进制编辑器查找并修改二进制字符串
常用的命令
attach 1234
b *0x1234
clear *0x1234
bt
disassemble
si
finish
set $eax
gcc test.c -o test
otool -tV target > dis.asm
工具:Xcode中的otool、 gdb;文本编辑器;hex编辑器;计算器;终端
目标:以下为“或”的关系
- 找出注册码计算方法,计算出真实有效的注册码
- 绕过程序的注册验证,使之认为已经注册
- 开放软件所有注册后应有的功能
- 动态调试,主要工具gdb
接着,使用gdb,用attach “进程id”
然后,bt查看函数调用栈,找到可疑函数后,使用up
继续,用si等命令单步跟踪,set等命令改变参数的值
再来,使用disassemble命令,查看确认要修改的二进制字符串
最后,用十六进制编辑器查找并修改二进制字符串
2. 动静结合,主要工具otool + gdb
a. otool -tV "目标程序" > dis.asm
b. 文本编辑器打开 dis.asm,查找可疑的函数
c. 使用gdb打开目标程序,并在可疑的函数中设置断点,如 b *0x00001234
d. run 运行程序,断点处,si 等跟踪, set 设置关键参数值
e. 用计算器计算需要修改的序列偏移,或disassemble命令
f. 用十六进制编辑器查找并修改二进制字符串
常用的命令
attach 1234
b *0x1234
clear *0x1234
bt
disassemble
si
finish
set $eax
gcc test.c -o test
otool -tV target > dis.asm