定义结构体
from ctypes import *WORD = c_ushort
DWORD = c_ulong
LPBYTE =  POINTER(c_ubyte)
LPTSTR = POINTER(c_char)
HANDLE = c_void_pDEBUG_PROCESS = 0x00000001
CREATE_NEW_CONSOLE = 0x00000010class STARTUPINFO(Structure):_fields_ = [("cb", DWORD),("lpReserved", LPTSTR),("lpDesktop", LPTSTR),("lpTitle", LPTSTR),("dwX", DWORD),("dwY", DWORD),("dwXSize", DWORD),("dwYSize", DWORD),("dwXCountChars", DWORD),("dwYCountChars", DWORD),("dwFillAttribute", DWORD),("dwFlags", DWORD),("wShowWindow", WORD),('cbReserved2', WORD),('lpReserved2', LPBYTE),('hStdInput', HANDLE),('hStdOutput', HANDLE),('hStdError', HANDLE),]class PROCESS_INFORMATION(Structure):_fields_ = [("hProcess", HANDLE),('hThread', HANDLE),('dwProcessId', DWORD),('dwThreadId', DWORD),]

debugger对象
from ctypes import *
from my_debugger_defines import *kernel32 = windll.kernel32class debugger():def __init__(self):passdef load(self, path_to_exe):creation_flags = DEBUG_PROCESSstartupinfo = STARTUPINFO()process_information = PROCESS_INFORMATION()startupinfo.dwFlags = 0x1startupinfo.wShowWindow = 0x0startupinfo.cb = sizeof(startupinfo)if kernel32.CreateProcessA(path_to_exe,None,None,None,None,creation_flags,None,None,byref(startupinfo),byref(process_information)):print "[*]we have successfully launched the process!"print "[*]PID:%d" % process_information.dwProcessIdelse:print "[*]Error: 0x%08x." % kernel32.GetLastError()

测试代码
import my_debuggerdebugger = my_debugger.debugger()
debugger.load("C:\Windows\WinSxS\wow64_microsoft-windows-calc_31bf3856ad364e35_10.0.10586.0_none_409843e5f973ed29\calc.exe")

转载于:https://www.cnblogs.com/hq2005001/p/5618003.html

pydebugger相关推荐

最新文章

  1. 深度学习开源库tiny-dnn的使用(MNIST)
  2. 【Qt】enum和QString的相互
  3. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...
  4. boost::regex模块实现将 C++ 文件转换为语法突出显示的 HTML的测试程序
  5. gulp 实现sass自动化 ,监听同步
  6. pwm控制的基本原理_单片机PWM控制基本原理详解~
  7. 双11又来了,网友:比数学考试都难
  8. 补习系列(22)-全面解读 Spring Profile 的用法
  9. leetcode-6-Z字形变换
  10. 微信公众号JSSDK中的wx.ready()和wx.error()问题
  11. dedecms 问答系统 ask
  12. 3月20 Ubuntu里运行脚本示例
  13. 机器人动力学参数辨识
  14. Git 码云 上传 本地项目 步骤/创建分支
  15. 引用 八卦象数疗法--配方2
  16. UltraISO制作U盘系统盘安装CentOS经验分享
  17. WinServer 2019 组策略开启远程桌面(增改)
  18. android 手机 otg,对于安卓智能手机的OTG功能,你了解多少
  19. Chromium浏览器下载
  20. JAVA EE:1~5章选择题

热门文章

  1. 节能以太网EEE(Energy Efficient Ethernet)
  2. 底部检测的do...while循环
  3. 小demo, java swing窗口编程(JDK 1.6) (二)
  4. import java.io 包下载_Go 包管理机制深入分析
  5. xshell搭建宝塔没有远程命令密码框框弹出来_服务器安装宝塔控制面板+wordpress搭建个人网站...
  6. 2017蓝桥c语言真题,[蓝桥杯][2017年第八届真题]发现环 (C语言代码)------------C语言——菜鸟级...
  7. pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...
  8. 英文Ubantu系统安装中文输入法
  9. Shell Notes(1)
  10. MyEclipse6.5与Perforce的集成