黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

  • A+
所属分类:编程语言

第一章 环境搭建

1.操作系统准备:

这个没什么好说的了,win+linux,最好的解决方案就是虚拟机了,如果你土豪就两台电脑也是挺好的

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

使用动态链接库

windows下:

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

linux下:

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

代码清单

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

联合体

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

实践一下

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

4.断点

就是想让程序在执行到什么时候,暂停下来,方便观察堆栈,寄存器和内存的数据, 破解明文比较的验证码就是这样的了

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

硬件断点

作用:有时候一些软件会做crc校验或其他校验,因为我们下断点改了指令,是校验值改变了,有些软件或者病毒什么的就直接退出了,

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

有以下3个类型

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

内存断点

这个其实不是真的断点,其实是改变了某个块或者某个页的权限。

比如我们设置内存写入断点, 我就让这个区域没有写入权限,那么当执行到写入时,就会触发保护页异常,cpu就会暂停下来,就断下来了。

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

一个debuger类

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

启动代码

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

继续出发,尝试实现附加到一个正在运行的程序上面进行附加

在debugger类中加入了以下的代码

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

test.py也改一下

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

附加到CTF的reverseme就可以,附加后,输入key回车后没反应,跟着我们任意按个键continue,那就从哪个进程分离了,就输出你输入的key是错误的

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

新增代码:

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

my_test

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

运行结果:可以看到我们也可以获取各个寄存器的值啦,同时这个进程有两个线程哦

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

3.3 实现调试事件的处理

新增了这个,mytest就看书吧

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

通过GetLastError知道错误码为6,即无效的句柄

原来这个高清电子书里面的代码是错的,就说怎么跟windows的API的参数顺序不一样呢, 不过作者给的源码是没错的

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

运行结果:

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

2. 硬件断点

代码就不贴了,主要是这三个函数,

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

这次是比较成功的,代码看书吧

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

基本上这就开发了一个基于Windows的轻量级调试器。感觉实在用python来做Win32编程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

剩下的咱们下次更新哦!

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

黑客+逆向工程?用Python来实现?怕是要上天!教科书一样的教程

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: