HookEngine.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:FRAPL 作者: FriedAppleTeam 项目源码 文件源码
def handleHookFuncEdit(self, screenEA = None):
        if self.hookedFunction() == False:
            return
        if screenEA is not None:
            func = get_func(screenEA)
        else:
            func = get_func(ScreenEA())
        if func is None:
            return

        address = func.startEA;
        entry = self.idbHookMap[address]
        entry.hook.symbol = get_func_name(address)

        hookDlg = FunctionHookDialog(entry.hook.module, "%X" % entry.hook.id, entry.hook.symbol, entry.hook.enterRecentSrcFile, entry.hook.leaveRecentSrcFile)
        hookDlg.Compile()
        hookDlg.script_enter.value = entry.hook.enterScript
        hookDlg.script_leave.value = entry.hook.leaveScript
        hookDlg.trigger.value = 0 if entry.hook.once == True else 1
        ok = hookDlg.Execute()
        if ok != 1:
            return

        flags = HookEntry.UDP_NONE
        once = True if hookDlg.trigger.value == 0 else False
        if entry.hook.once != once:
            entry.hook.once = once
            flags |= HookEntry.UPD_TRIGGER

        entry.hook.enterRecentSrcFile = hookDlg.recentScriptFileEnter
        if entry.hook.enterScript != hookDlg.script_enter.value:
            entry.hook.enterScript = hookDlg.script_enter.value
            flags |= HookEntry.UPD_SCRIPT

        entry.hook.leaveRecentSrcFile = hookDlg.recentScriptFileLeave
        if entry.hook.leaveScript != hookDlg.script_leave.value:
            entry.hook.leaveScript = hookDlg.script_leave.value
            flags |= HookEntry.UPD_SCRIPT

        outJSON = json.dumps({
            "req_id": kFridaLink_UpdHookRequest, 
            "data": entry.genUpdRequest(flags)
        }) 
        self.clientSocket.sendto(outJSON, self.clientAddress)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号