ida中如何将汇编语言转为c,[求助]如何成功的用IDA转换一小段汇编成C++

昨天看了一篇帖子《使用ida对任意一段机器码进行反汇编》

我想用记事本写了一段C++代码,然后用winhex打开,选取所有保存为exe文件;

C++代码很简单,如下:

#include 

using namespace std;

void main()

{

int a,b;

int c=a+b;

cout<

}

对winhex的操作是正确的,如下表:

204955_HAJZ4RGRAMDXUG4.png

然后用IDA打开新生成的1.exe(不知道是不是要特殊的编译器比如VC++生成EXE)

转换为Code代码

创建函数

seg000:00000000     sub_10000       proc near

seg000:00000000 000                 and     ebp, [ecx+6Eh]

seg000:00000003 000                 arpl    [ebp+esi*2+64h], bp

seg000:00000007 000                 and     gs:[ecx+ebp*2], bh

seg000:0000000B 000                 outsd

seg000:0000000C 000                 jnb     short near ptr 82h

seg000:0000000E                     db      65h

seg000:0000000E 000                 popa

seg000:00000010 -20                 insd

seg000:00000011                     db      2Eh

seg000:00000011 -20                 push    750A0D3Eh

seg000:00000017 -1C                 jnb     short near ptr 82h

seg000:00000019 -1C                 outsb

seg000:0000001A -1C                 and     [bp+61h], ch

seg000:0000001E -1C                 insd

seg000:0000001F                     db      65h

seg000:0000001F -1C                 jnb     short near ptr 92h

seg000:00000022 -1C                 popa

seg000:00000023 -3C                 arpl    [ebp+20h], sp

seg000:00000026 -3C                 jnb     short near ptr 9Ch

seg000:00000028 -3C                 cmp     ecx, fs:760A0D0Ah

seg000:000

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IDA 是一种广泛使用的反汇编工具,用于将机器码转换相应的高级编程语言代码,例如 C 语言。通过反汇编 C 代码,我们可以更好地理解和分析程序的功能和逻辑。 使用 IDA汇编 C 代码的过程相对较简单。首先,我们将目标程序加载到 IDA ,并选择以反汇编 C 语言的方式展示反汇编结果。接下来,在 IDA 的窗口,我们将看到程序的汇编代码,以及与每个指令对应的注释和变量名。 通过分析反汇编结果,我们可以确定每个汇编指令对应的 C 代码,并进一步理解程序的结构和流程。通过添加注释、变量名和函数名,我们可以更方便地阅读和分析代码。 IDA 还提供了一些高级功能,例如交叉引用和反汇编图,这些功能能够帮助我们更全面地理解程序的各个部分和函数之间的联系。通过分析反汇编结果,我们可以发现任何隐藏的功能或安全漏洞,并进行修复或优化。 总而言之,IDA 是一款强大的反汇编工具,能够将机器码转换为易于理解的 C 代码,帮助我们更好地理解、分析和优化程序的功能和逻辑。 ### 回答2: IDA是一款强大的反汇编软件,用于将机器码还原为可读的C语言代码。IDA具有简单易用的界面和丰富的功能,可以帮助逆向工程师分析和理解二进制文件的内容。 使用IDA汇编C语言代码可以带来很多好处。首先,通过反汇编,可以获得更多关于程序的信息,如函数的调用关系、变量的使用方式等。这对于理解程序的功能和逻辑非常有帮助。 其次,IDA可以将反汇编的结果以C语言的形式呈现,使得代码更易读、易懂。这对于逆向工程师理解程序的逻辑和进行代码分析非常重要,有利于发现潜在的安全漏洞或程序的漏洞。 此外,IDA还提供了很多辅助功能,如交叉引用、调试器、动态分析等。这些功能能够帮助逆向工程师更方便地进行代码分析和调试,提高工作效率。 总之,IDA通过反汇编C语言代码,可以帮助逆向工程师深入理解程序的内部结构和工作原理,提高分析和逆向工程的效率。无论是进行安全评估、漏洞挖掘还是代码重用,IDA都是非常有用的工具。 ### 回答3: IDA是一款常用的反汇编工具,可以将机器码反汇编为C语言代码。使用IDA汇编C代码可以帮助我们理解程序的功能和逻辑。 首先,我们需要将目标程序加载到IDAIDA会对目标程序进行静态分析,并将二进制代码转换为可读的汇编语言代码。对于C语言编写的程序,IDA会尽可能地还原出C代码的结构和逻辑。 在IDA,我们可以看到反汇编后的代码,以及反汇编后所生的控制流图。控制流图可以帮助我们了解程序的执行流程和函数调用关系。 如果反汇编出的代码是汇编语言的形式,我们可以通过IDA的辅助功能将其转换为C代码。IDA提供了一些工具和插件,可以将汇编代码转换为等效的C代码。这样,我们就能更方便地理解和分析程序的功能。 然而,需要注意的是,IDA的反汇编过程并不是100%准确的。原因是编译器在将C代码转换为机器码时会进行优化和重排指令,这会导致一些信息的丢失。因此,反汇编的结果可能不完全等同于原始的C代码。 总而言之,借助IDA的反汇编功能,我们可以更好地分析和理解目标程序的功能和逻辑。但是需要谨记反汇编结果并不完全准确,需要结合其他手来进行分析和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值