有没有办法导出asm文件,从而取消隐藏IDA Pro中的所有项目

问题描述 投票:0回答:2

我想得到一个使用IDA Pro反汇编的asm文件,并使用脚本一次制作大量的asm文件。

我尝试了两种方法来获取asm文件

第一个是使用idapython:

idc.GenerateFile(idc.OFILE_ASM, idc.GetInputFile()+".asm", 0, idc.BADADDR, 0)

成功生成asm文件,但该文件有一些隐藏的功能

像这样:

; [0000000C BYTES: COLLAPSED FUNCTION j__UIAccessibilityPostNotification. PRESS KEYPAD CTRL-"+" TO EXPAND]

第二个改为批处理模式来获取asm文件:

~/.ida-6.5/idal -c -parm:ARMv7 -B myFilePath/myFile

也成功生成了asm文件,但我遇到了同样的问题,即一些函数被隐藏了

有没有办法选择全部取消隐藏,然后从IDA导出asm文件?

disassembly ida
2个回答
0
投票

迟到的答复
如果您在执行 idc 命令之前发送击键没有问题

您可以定义一个宏来取消隐藏所有折叠的功能

假设您使用的是gui版本打开idagui.cfg 导航到键盘快捷键定义并找到“取消隐藏全部”条目并定义按键序列 我已将

ctrl+2
定义为下面的
ida free 5.0

中的按键
\IDA_FRE_5\cfg>cat idagui.cfg | grep -i unhide
"Unhide"                =       "Numpad+"
"UnhideAll"             =       "Ctrl+2"
"GraphUnhideGroup"      =       0               // Unhide group
"GraphUnhideAllGroups"  =       0               // Unhide all groups

关闭并打开 ida 才能生效

从现在开始,如果你按 ctrl+2 并运行 idc 命令,你将得到一个不包含折叠函数的 asm

foo.asm 是在 ctrl+2 之前生成的 blah.asm 在按下 ctrl+2 后

auto fp;
fp = fopen("c:\\blah.asm","w");
GenerateFile(OFILE_ASM,fp,0x10127a4,0x10127aa,0x0);
fclose(fp);

下面两个文件的内容

C:\>type foo.asm blah.asm

foo.asm


;
; ╔═════════════════════════════════════════════════════════════════════════╗
; ║     This file is generated by The Interactive Disassembler (IDA)        ║
; ║     Copyright (c) 2010 by Hex-Rays SA, <[email protected]>           ║
; ║                      Licensed to: Freeware version                      ║
; ╚═════════════════════════════════════════════════════════════════════════╝
;
; [00000006 BYTES: COLLAPSED FUNCTION _XcptFilter. PRESS KEYPAD "+" TO EXPAND]

blah.asm


;
; ╔═════════════════════════════════════════════════════════════════════════╗
; ║     This file is generated by The Interactive Disassembler (IDA)        ║
; ║     Copyright (c) 2010 by Hex-Rays SA, <[email protected]>           ║
; ║                      Licensed to: Freeware version                      ║
; ╚═════════════════════════════════════════════════════════════════════════╝
;

; ███████████████ S U B R O U T I N E ███████████████████████████████████████

; Attributes: thunk

_XcptFilter     proc near               ; CODE XREF: start+199↑p
                jmp     ds:__imp__XcptFilter
_XcptFilter     endp

0
投票

您可以指定 -D 选项 ALYSIS 并取消设置位“自动隐藏库函数”(0x04000000):

终端模式,自动生成IDB库和ASM文件,无折叠lib功能:

"C:\Program Files\<IDA DIR>\idat64.exe" -B -DANALYSIS=0xDBFF9FF7 someBinaryFile

或者运行UI现有的IDB而不折叠lib函数:

"C:\Program Files\<IDA DIR>\ida64.exe" -DANALYSIS=0xDBFF9FF7 someBinaryFile.i64

来自 ida.cfg:

#define AF_HFLIRT 0x04000000 // Automatically hide library functions

ANALYSIS = 0xDBFF9FF7ULL // This value is combination of the bits defined above 

© www.soinside.com 2019 - 2024. All rights reserved.