欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

pydebugger

发布时间:2023/12/13 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 pydebugger 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
定义结构体 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。