pydbg学习

来源:互联网 发布:淘宝开店要哪些软件 编辑:程序博客网 时间:2024/06/03 02:31

#以前在window xp下学习过一段时间pydbg,现在在window 7 下发现有些新问题,将pydbg实现windbg中一条简单的“bu”命令测试了下:

#在此留个记号,免得下次有的从头再来 


# coding gb2312 -*-from ctypes import *from pydbg import *from pydbg.defines import *from pefile import *import sysdef handler_UpdateMarkupContentsVersion(dbg):print "************"print "edx=%08x"%dbg.get_register("edx")print "eax=%08x"%dbg.get_register("eax")buf = dbg.read_process_memory(dbg.get_register("edx"),0x100)for i in range(0,0x100):print "%02x "%ord(buf[i]),if (i%16)==15:print ""print "************"sys.stdout.flush()return DBG_CONTINUEdef my_event_handler_load_dll(dbg):last_dll = dbg.get_system_dll(-1)print "loading:%s from %s into: %08x size: %x"%(last_dll.name,last_dll.path,last_dll.base,last_dll.size)if last_dll.name == 'mshtml.dll':dbg.bp_set(last_dll.base+0x24943e,"mshtml!CMarkup::UpdateMarkupContentsVersion",restore = True,handler =handler_UpdateMarkupContentsVersion )return DBG_CONTINUEdef main():debug_file = 'c:\\program files\\internet explorer\\iexplore.exe'debug_module = "c:\\windows\\system32\\mshtml.dll"params = "http://192.168.0.12/cve-2014-0322/ie10_0day.html"pe = PE(debug_file)#print "%x"%pe.OPTIONAL_HEADER.AddressOfEntryPoint#base_addr = windll.LoadLibraryW(debug_file)#print base_addrdbg = pydbg()dbg.load(debug_file,params)baseaddr = windll.kernel32.LoadLibraryA(debug_file)print dbg.get_instruction(baseaddr+pe.OPTIONAL_HEADER.AddressOfEntryPoint)dbg.set_callback(LOAD_DLL_DEBUG_EVENT,my_event_handler_load_dll)dbg.run()if __name__ == '__main__':main()



0 0
原创粉丝点击