首页
社区
课程
招聘
未解决 [悬赏][求助]Hook breakpoint in ida7.0 failed 2.00雪花
发表于: 2017-12-19 10:16 2993

未解决 [悬赏][求助]Hook breakpoint in ida7.0 failed 2.00雪花

2017-12-19 10:16
2993
参照同学们的demo写的一个ida script,在ida7.0中运行之后,Hook显示True,脚本也跑起来了,但是进步到dbg_bpt函数里面,对idaapi不是很了解,求大神解惑。
from idaapi import *

chunks = {}

class DbgHook(DBG_Hooks):
    def dbg_bpt(self, tid, ea):
        global chunks
        chunks[GetRegValue("eax")] = dbg_read_memory(GetRegValue("ebx"), 20)
        continue_process()
        return 0

try:
    if debugger:
        debugger.unhook()
except Exception as e:
    pass


AddBpt(0x403E65)
debugger = DBG_Hooks()
debugger.hook()
request_start_process("C:\\Users\\win7\\Desktop\\codemap.exe", "", "")
run_requests()
stackoverflow上提问了,没有回答。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
IDA目录下python里面有源代码呀  --->    idaapi.py
这里也有  cb8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6A6k6r3q4H3P5i4c8Z5L8$3&6Q4x3V1k6K6M7X3y4Q4x3V1k6Q4x3U0k6F1j5Y4y4H3i4K6y4n7  
文档  aa1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2Z5k6i4S2Q4x3X3c8J5j5i4W2K6i4K6u0W2j5$3!0E0i4K6u0r3M7s2u0G2k6s2g2U0N6s2y4Q4x3V1k6A6k6r3q4Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0r3K9h3c8S2M7s2W2@1K9r3!0F1i4K6g2X3k6r3!0U0M7#2)9J5c8W2)9J5y4X3&6T1M7%4m8Q4x3@1t1`. ,左下角那个窗口所有函数都有,ctrl+F  搜下

比如:
dbg_read_memory(py_ea, py_sz)

 
Reads from the debugee's memory at the specified ea

Returns: PyObject *
The read buffer (as a string)
Or None on failure


2017-12-19 18:24
0
雪    币: 1202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我并不是dbg_read_memory出问题了,是连dgb_bpt这个函数都进不去,就是说压根没有hook到断点,这是exe,我想在0x403E65处下断,读eax,ebx的值组成一个字典,之后按照eax大小排序。所以这样子写这个脚本,immDbg里我已经实现了,在ida中这个脚本缺hook不到断点。
2017-12-20 10:27
0
雪    币: 1343
活跃值: (2832)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
有没有进去,去函数里打印一句话看看就知道了
from  idaapi  import  *

chunks  =  {}

class  DbgHook(DBG_Hooks):
        def  dbg_bpt(self,  tid,  ea):
                global  chunks
                print  ("[*]  DbgHook  OK  ......\n")
                chunks[0]  =  dbg_read_memory(GetRegValue("eip"),  10)
                #chunks[GetRegValue("eax")]  =  dbg_read_memory(GetRegValue("ebx"),  20)
                print  (chunks)
                #continue_process()
                return  0
 
try:
        if  debugger:
                debugger.unhook()
except  Exception  as  e:
        pass

       
AddBpt(0x00403360)
SetBptAttr(0x00403360,  BPTATTR_FLAGS,  BPT_ENABLED|BPT_BRK)
print  ("[*]  set  hook  OK  ......\n")
debugger  =  DbgHook()
debugger.hook()
#request_start_process("C:\\Users\\administrator\\Desktop\\codemap.exe",  "",  "")
#run_requests()
2018-1-25 10:42
0
游客
登录 | 注册 方可回帖
返回