- A+
所属分类:编程语言
第一章 环境搭建
1.操作系统准备:
这个没什么好说的了,win+linux,最好的解决方案就是虚拟机了,如果你土豪就两台电脑也是挺好的
使用动态链接库
windows下:
linux下:
代码清单
联合体
实践一下
4.断点
就是想让程序在执行到什么时候,暂停下来,方便观察堆栈,寄存器和内存的数据, 破解明文比较的验证码就是这样的了
硬件断点
作用:有时候一些软件会做crc校验或其他校验,因为我们下断点改了指令,是校验值改变了,有些软件或者病毒什么的就直接退出了,
有以下3个类型
内存断点
这个其实不是真的断点,其实是改变了某个块或者某个页的权限。
比如我们设置内存写入断点, 我就让这个区域没有写入权限,那么当执行到写入时,就会触发保护页异常,cpu就会暂停下来,就断下来了。
一个debuger类
启动代码
继续出发,尝试实现附加到一个正在运行的程序上面进行附加
在debugger类中加入了以下的代码
test.py也改一下
附加到CTF的reverseme就可以,附加后,输入key回车后没反应,跟着我们任意按个键continue,那就从哪个进程分离了,就输出你输入的key是错误的
新增代码:
my_test
运行结果:可以看到我们也可以获取各个寄存器的值啦,同时这个进程有两个线程哦
3.3 实现调试事件的处理
新增了这个,mytest就看书吧
通过GetLastError知道错误码为6,即无效的句柄
原来这个高清电子书里面的代码是错的,就说怎么跟windows的API的参数顺序不一样呢, 不过作者给的源码是没错的
运行结果:
2. 硬件断点
代码就不贴了,主要是这三个函数,
这次是比较成功的,代码看书吧
基本上这就开发了一个基于Windows的轻量级调试器。感觉实在用python来做Win32编程
剩下的咱们下次更新哦!
我的微信公众号
爱真理,得永生! 爱在灵灵久博客,网罗天下,福利大家!