IDA 显示函数名称技巧

原创 2013年12月01日 23:07:05

在IDA中,我们可以经常看到这种

 

all    memset
push    esi             ; unsigned int
call    ??_U@YAPAXI@Z   ; operator new[](uint)
push    esi             ; Size
push    0               ; Val
push    eax             ; Dst
mov     [esp+1C4h+var_184], eax
call    memset
add     esp, 20h
lea     ecx, [esp+1A4h+var_190]
call    ds:?GetLength@?$CSimpleStringT@D$00@ATL@@QBEHXZ ; ATL::CSimpleStringT<char,1>::GetLength(void)
push    eax
lea     ecx, [esp+1A8h+var_190]
call    ds:?GetBuffer@?$CSimpleStringT@D$00@ATL@@QAEPADH@Z ; ATL::CSimpleStringT<char,1>::GetBuffer(int)
mov     [esp+1A8h+var_18C], eax
lea     esi, ds:0[ebp*4]
lea     eax, [esi+1]
push    eax             ; unsigned int
call    ??_U@YAPAXI@Z   ; operator new[](uint)
mov     ebp, eax
lea     eax, [esi+1]


 

其中函数名称是乱码

要显示正确的函数名称很简单

 

Options->Demangled names...->Show demangled C++ names as:->Names


然后就变成这样了:

call    memset
push    esi             ; unsigned int
call    operator new[](uint)
push    esi             ; Size
push    0               ; Val
push    eax             ; Dst
mov     [esp+1C4h+var_184], eax
call    memset
add     esp, 20h
lea     ecx, [esp+1A4h+var_190]
call    ds:ATL::CSimpleStringT<char,1>::GetLength(void)
push    eax
lea     ecx, [esp+1A8h+var_190]
call    ds:ATL::CSimpleStringT<char,1>::GetBuffer(int)
mov     [esp+1A8h+var_18C], eax
lea     esi, ds:0[ebp*4]
lea     eax, [esi+1]
push    eax             ; unsigned int
call    operator new[](uint)
mov     ebp, eax
lea     eax, [esi+1]


 

这样是不是很爽?

 

相关文章推荐

IDA-列出哪些函数调用了当前选中的函数名

1、在汇编代码视图里面,点击或选中要查找的函数 2、view-->Open subviews-->Function calls 就可以找到本模块里面哪些函数调用了选中的函数...

6.IDA-重命名、注释

由于IDA基础数据库的本质,你对反汇编代码所做的更改将迅速“扩散”到IDA的所有子窗口中,以使反汇编代码保持一致 说明 记住,IDA不提供撤销功能。在操纵数据库时,请一定记住这一点。你所能做的,就是经...
  • hgy413
  • hgy413
  • 2011年12月20日 20:53
  • 4416

16.IDA-列出函数中存在的全部call

有时待分析的函数反汇编太长,需要确认此函数调用了哪些call 选择View▶Open Subviews▶Function Calls窗口 窗口的上半部分列出了所有调用当前函数(由打开窗口时光标所...
  • hgy413
  • hgy413
  • 2016年01月28日 10:30
  • 1435

9.IDA-重新设置函数类型、创建数组结构

重新设置函数类型 写一个简单的代码做测试: int fun(int a, double b) { return 0; } int _tmain(int argc, _TCHAR* argv[]) ...
  • hgy413
  • hgy413
  • 2012年06月16日 21:25
  • 2188

IDA Pro使用技巧及大杂烩

IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window)。 IDA图形视图会有执行流,Yes箭头默认为绿色...

windowsAPI OpenProcess和CreateProcess的区别

API了解的多了,很容易混乱,在调试一节中,提到打开进程和创建进程。 从名字上来说,创建进程,就是创建了一个新的进程,而打开进程,是为了获取已经运行了的进程的句柄。MSDN解释,说的很清楚OpenP...

python中使用sys.argv命令行参数

sys模块包含了与Python解释器和它的环境有关的函数。 在python命令行环境下可以通过help('sys')或是点击打开链接可以查看sys模块所有的描述说明。 sys.argv变量是一个字符串...

13.IDA-显示正确的函数名称(去掉c++后缀命名)

随便看一段IDA的反汇编:    C++编译器用于区分重载函数的机制。为了给重载函数生成唯一的名称,编译器用其他字符来修饰函数名称 图左就是C++的后缀命名法,图右是正常的函数名字 ...

2.IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)

当IDA加载后,3个立即可见的窗口分别为IDA-View窗口、函数窗口和消息输出窗口,所有窗口都可通过View▶Open Subviews菜单打开 反汇编窗口 反汇编窗口也叫IDA-View窗口,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IDA 显示函数名称技巧
举报原因:
原因补充:

(最多只允许输入30个字)