pydbg扩展断点处理例程

2348阅读 0评论2012-04-24 XylDll
分类:Python/Ruby

  首先必须说一下pydbg其实就是一个windows下纯python写的类库,他是逆向工程框架PaiMei的核心组件。
  
  既然pydbg是一个类库,所以每次扩展之前要先实例化一个对象
  
   在pydbg中,方法attach(pid)即可将进程附加到调试器中,参数pid是要附加进程的pid。
   方法func_resolve("库名","函数名")用来获取某个函数的内存地址,其中库名是该函数所在的动态链接库。
   方法bp_set(address,description = "",restore = True,handler = None)用来设置软断点,address是软断点所在的内存地址,description是个可选参数,通过它给断点指定一个唯一的命名,restore的取值决定了该断点是否仅作一次性用途,handler指定该断点被命中后所需要回调的函数。
   方法run()回来恢复被加载的进程
 printf_random.txt    printf_loop.txt   
  
 
  printf_random在printf_loop中的printf处设置软断点,使得程序每次运行到printf时暂停去运行回调函数(修改counter的值),所以一旦printf_loop被加载到调试器中时,显示的数据将不再可靠。
 
 
 
#python中不支持汉语,所以运行时应该要删除里边的注释
上一篇:python2.7安装pydbg
下一篇:python中三种不同模块导入方法的区别