Python灰帽子学习笔记(一)—— pydbg软钩子部署

本文记录了在学习Python逆向工程过程中遇到的问题,特别是使用pydbg进行软钩子部署时在扩展断点处理例程上遇到的困扰。通过深入研究栈帧知识,发现目标代码在调用printf函数时实际只传递了一个参数,导致获取counter值错误。解决方案是确保正确处理参数数量,避免因数字位数不确定带来的问题。修改后的代码能正确地传递两个参数,从而解决问题。

最近,在工作之余学习python逆向工程,找到了一本翻译过来的中文参考书:Python灰帽子——黑客与逆向工程师的Python编程之道。按照书上的顺序,从基础开始构建基于python语言的调试器,目前已经推进到第四章。期间也遇到了一些问题,经过不断地百度和查阅相关书籍,最终都成功解决,同时有了很多收获。这里,想要将这些问题和解决办法记录下来,供以后回头学习。同时期望能够帮助到刚刚入门python,同样在学习的Python灰帽子的同学。

在运行4.1节扩展断点处理例程时,总是得不到预期的效果。
中文版被中断的目标代码如下:

#print_loop.py

from ctypes import * import time

msvcrt = cdll.msvcrt counter = 0

while 1:
    msvcrt.printf("Loop iteration %d:\n" %counter)
    time.sleep(2)
    counter += 1

调试器代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值