我使用LordPE从内存中删除了一个dll,到目前为止一直很好,但IDA显示的功能如下:
call off_11CAE08
在内存地址11CAE08(.data部分)我们有01058530(.text部分)所以我想IDA能够显示调用sub_01058530,所以,有没有任何方法或脚本可以更改和修复所有行这个问题?
答案 0 :(得分:0)
这是一个相对电话,您需要解决该地址。您可以通过查看库静态地执行此操作,也可以使用名为Ablation的工具动态执行此操作,您可以通过听取作者talk的黑帽来学习如何使用它。为此,您需要使用消融运行process / dll
答案 1 :(得分:0)
假设您具有1-dref这样的功能,下面是一个使用sark的脚本:
from sark import *
from idc import *
from idaapi import *
from idautils import *
import struct
text_start =xxx
text_end= xxxx
data_start=xxx
data_end=xxx
for line in sark.lines(text_start, text_end):
for ref in line.xrefs_to:
if ref.type.is_call:
if data_start <= ref.to <= data_end:
addr = GetManyBytes(ref.to, 4)
addr, _ = struct.unpack("<I", addr)
MakeName(ref.to, "func_ptr_"+str(addr))
P.S。我是用手机写的,所以语法可能不正确。