今天浅读了《Python灰帽子》,让我对程序调试有了更清晰的认识。如果没有记错的话,我最早了解程序调试工具gdb,使用gdb去运行着带着符号表的C程序,后来我大致了解到程序调试的原理是对于进程的控制或者说是观察,无论是C,是python还是java,之所以能够去调试这些程序,是因为进程管理给我们留了一个口子。

其实无论linux系统还是windows系统,操作系统本省都给我们提供了接口函数,这些接口函数可以去访问粒度级别的状态,可以用来获取进程,线程,乃至寄存器的状态。

x86的寄存器

寄存器状态,

EIP 这个寄存器始终指向当前正在执行的指令,当CPU穿行于二进制代码中时,EIP寄存器中的值随之更新以实时反映当前代码所执行到的位置。

oxCC当CPU一路执行碰到这个字节的时候会触发一个INT3中断事件,而当前执行的进程则暂停在此处。

使用python编写自己的进程调试工具相关推荐

  1. 用python编写daemon监控进程并自动恢复(附Shell版)

    因为hadoop集群中datanode是大量存在的,那么多机器,什么事都可能发生,最通常的大概就是进程挂掉了.所以为了省事,参考别人的代码写了这个监控进程的daemon.当然,稍加修改就可以用来监控别 ...

  2. python网站开发linux_使用Python编写Linux系统守护进程实例

    守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控.此类程序会被以进程的形式初始化.通常,守护进程没有任何存在的父进程(即PPID=1),且 ...

  3. python编写脚本方法_【Python】教你一步步编写banner获取脚本

    Hello 各位小伙伴们大家好,周末过的愉快吗? 刚好最近学习了使用python编写banner获取脚本,今天就跟大家一起一步一步再学习一遍吧. Part.1 说明篇 什么是banner? banne ...

  4. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  5. 用python写脚本看什么书-终于知晓python编写脚本入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  6. python操作手机app_【Python】[技术博客] 一些使用Python编写获取手机App日志的操作...

    一些使用Python编写获取手机App日志的操作 如何获取手机当前打开的App的包名 如何获取当前App进程的PID 如何查看当前App的日志 如何将日志保存到文件 如何关闭进程 如何不显示命令行窗口 ...

  7. Python学习笔记:进程和线程(起)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python编写简易木马程序

    0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全 ...

  9. Python编写的桌面图形界面程序实现更新检测和下载安装

    在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...

最新文章

  1. 智慧屏到底是不是鸿蒙,荣耀智慧屏究竟是电视还是“新物种”?
  2. 为什么只有128KB的魂斗罗,可以那么长的剧情?
  3. MNN.Tensor exit code -1073740791 (0xC0000409) 解决
  4. Eclipse设置字符编码
  5. JVM 调优实战--什么是调优及如何调优的思路
  6. 基于STC89C52的韦根数据接收
  7. python遥感数据有偿处理_利用python读写tiff遥感影像数据
  8. java第一季_Java入门第一季
  9. 指针大小为什么与类型无关?
  10. 安装Ubuntu下的开发工具
  11. Android-界面-布局
  12. Everything下载及使用教程【非常详细】(磁盘文件搜索神器)
  13. 2020淘宝双11最强星秀猫怎么玩 怎么退出队伍你知道吗
  14. 转载:子网掩码以及子网划分
  15. 深度学习之TensorFlow(一)
  16. 【设计图交接与沟通的高效平台】上海道宁为设计师与开发者提供产品团队的互联空间——Zeplin
  17. FFmpeg获取视频旋转角度rotate获取不到的问题解决
  18. 稿定设计怎么去除水印?
  19. SQL(之一)-SQL经典题目
  20. h5 登录页面_鲁班H5作者:@小小鲁班

热门文章

  1. 【python】set集合基础与使用
  2. 【Python-GPU】GPU数据科学加速包——RAPIDS
  3. ECCV2018 论文简析 Oral_1 持续更新
  4. JMeter——并发测试工具类安装及使用
  5. Java—Map集合详解(HashMap/Hashtable/LinkedHashMap/Properties/TreeMap/WeakHashMap/IdentityHashMap/EnumMap)
  6. javascript 西瓜一期 14 回顾 字符与编码 进制转换 数据保存
  7. 爬虫-请求类对象的创建-Request类
  8. 爬虫,反爬工具fake-useragent,随机useragent模块教程
  9. 练习-自定义分页功能的实现
  10. django-验证码