❶ 如何用VC6 将c语言转成汇编语言
可以直接用IDA反汇编VC用C生成的.exe文件,这个是专业的结构清晰。要用VC也行,不过里面含有调试信息不实纯粹的汇编,如果你的C语言已经通过,能编译成功,按F10就进入调试界面,然后点击“调试”小窗口下面一行的Disassembly就可以看到汇编的代码了
❷ ida pro能反汇编成c语言吗
不能反编译成c
不过能反编译成非常类似c的伪码,和源码还是有很大差别的,不过有经验还是可以读懂
❸ dll文件如何反汇编成源码,C++语言编写
DLL 属于可执行文件中的一类,又称为动态链接库,不能直接用DEBUG加载,一般由应用程序因使用该库中的函数,而由操作系统在应用程序加载的同时被加载入特定地址,这个地址一般是DLL在链接时指定的。当DLL被加载到运行空间,根据输出函数表,可以得到各个函数的入口地址,然后用DEBUG在各个入口下断点,调用该函数时DEBUG将跟踪进入该函数,从而实现反汇编。
反汇编属于逆向工程,逆向工程的主要手段有两大类,其中一类是动态分析,另一类是静态分析。
前面提到的方法属于动态分析,由DEBUG实现反汇编,该方法不容易得到完整的代码,一般只能形成一段一段独立分散的代码,同时由于DEBUG的局限性,反汇编的代码质量多不高,生成的代码不能直接使用,原因在于DLL在加载时若没有加载到指定地址空间,操作系统将对代码进行重定向,所以DEBUG只能得到重定向后的代码,这类代码必须修改每一个重定向点,才能形成可执行代码。作为WINDOWS32位操作系统, OLLYDBG是最为优秀的调试、跟踪、反汇编工具,多窗口运行,可以方便的通过窗口操作完成各类动作,而不需要像一般DEBUG那样由命令行来完成,OLLYDBG还有许多一般调试器不具备的功能,同时由于每一代高手不断的修改,使其具有多种功能,同时带来的就是混乱,谁也不知道有多少版本,谁也不清楚每个版本到底增加了什么功能,但就这样,也是瑕不掩疵, OLLYDBG任然是DEBUG中最强大,最好使用的。
静态分析和动态分析不同,静态分析直接打开原程序,加载而不运行,然后直接分析加载的代码。目前静态分析工具,最强大的当属IDA,IDA支持几乎所有种类的汇编语言。
IDA加载应用程序有许多选项,可以选择完整的加载整个程序,也可以选择加载程序的某个块,一般可选择的是否加载文件头、资源表、输入表、输出表等等。
IDA还支持调试,也就是说,当你在进行反汇编过程时,可以直接使用IDA来调试跟踪,以分析代码的动态执行情况,不过就动态跟踪来说,OLLYDBG更为强大。
IDA反汇编的正确率和代码的复杂程度有关,对于正规开发的代码,尤其是如果能够获得源程序的调试文件,即所谓的PDB文件,IDA可以读取PDB文件中的信息,使得反汇编的效率和准确度大为提高,生成的代码甚至比源代码易读。IDA将反汇编生成的结果存入IDB文件中。当你确认反汇编的结果达到你的要求,可以让IDA输出汇编源代码,IDA也提供其他格式的输出,例如HTML文件,便于用户阅读。楼主主要是用于分析DLL文件,一般来说这类文件更适合做静态分析,所以推荐使用IDA来进行。
IDA对于分析那些加壳或含有大量花指令、混淆代码、垃圾代码的程序,反汇编的正确率会大为下降,因为IDA无法正确的确认当期位置上的数值是属于代码,还是属于数据,是普通C字符,还是DELPHI的字符串,还是UNICODE字符串,是结构数据还是数组还是类表(DELPHI生成的代码中含有大量的类表)等等。遇到这种情况,就需要使用者掌握许多技巧,例如可以通过使用者对当前数据的认识,指导IDA如何处理当前的数据。对于大批量的,具有某些规律的数据,IDA还提供了脚本语言(文件尾位idc),通过对脚本的执行来指导IDA如何进行反汇编。对于更为复杂的情况,例如程序是自解压运行的,这时IDA就没有任何能力来进行正确的分析,通常都会用OLLYDBG动态跟踪,等程序完成自解压后从内存中将解压后的代码完整的挖下来形成文件,再由IDA进行静态分析。
对于成功进行反汇编的代码,IDA根据代码的入口、调用、转移等指令,可以为使用者提供各种格式的程序的流程图,IDA提供许多格式由用户选择,便于用户理解程序的结构。
汇编语言的科学定义,其实就是介于机器码(各种01)和高级语言(如C)之间的一种语言。你用C语言写一段程序,其实要在机器上运行的话,机器是不懂的,要经过编译器、汇编器编译,变成汇编,最终再变成机器码,机器根据这些机器码的01可以控制硬件电路完成你程序想执行的操作。
❹ 哪位高手帮我把汇编语言程序转换成c语言程序啊(对了是51单片机程序)
受人以鱼不如受人以渔,有个工具叫做:ida,装好插件后就可以直接反汇编为C语言,
http://www.pediy.com/tools/Disassemblers/ida/ida.htm
IDA PRO 简称IDA ,英文:Interactive Disassembler的缩写。它是由HEX RAY SA 公司开发的,一家多年以来从事二进制代码反编译C的软件安全公司,其公司的旗舰产品就是着名的Hex-
❺ 如何将c语言程序转成汇编语言程序。
如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码。如果参数是 /FAs 则会同时将源码和汇编代码。
/FA 程序集代码;.asm
/FAc 机器码和程序集代码;.cod
/FAs 源代码和程序集代码;.asm
/FAcs 机器码、源代码和程序集码;.cod
/Fa的用法
/Fa 为编译中的每个源代码文件创建一个源文件.asm。
/Fa文件名 将文件名.asm 放到当前目录中。仅在编译单个源代码文件时有效。
/Fa文件名.扩展名 将文件名.扩展名放到当前目录中。仅在编译单个源代码文件时有效。
/Fa目录\ 为编译中的每个源代码文件创建一个源文件.asm,并将其放到指定目录中。请注意必须有后缀反斜杠。只允许使用当前磁盘上的路径。
/Fa目录\文件名 将文件名.asm 放到指定目录中。仅在编译单个源代码文件时有效。
/Fa目录\文件名.扩展名 将文件名.扩展名放到指定目录中。仅在编译单个源代码文件时有效。
如果你是用gcc 或 g++编译器,如dev c++则加入命令行参数 -S 即可
❻ CC1100汇编的代码怎么写啊
受人以鱼不如受人以渔,有个工具叫做:ida,装好插件后就可以直接反汇编为C语言,
IDA
PRO
简称IDA
,英文:Interactive
Disassembler的缩写。它是由HEX
RAY
SA
公司开发的,一家多年以来从事二进制代码反编译C的软件安全公司,其公司的旗舰产品就是着名的Hex-
❼ ida pro生成类c语言代码的怎么操作
就是伪代码,也就是就是用常规语言或文字符号(即非编程语言写的)代码算法,叫伪代码 只是为了直观的表达出算法,才用伪代码,还有相应的伪代码语言等,这些代码无法运行,只有通过按照伪代码所表达的算法或操作,编好程序,才能运行.
❽ 如何查看DLL中的函数原型
主要工具有三个
1、VC自带的 mpbin,用法如:mpbin /exports mspft80.dll
2、可以depends来查看依赖项
3、可以用IDA反汇编工具来查看,加载你需要的dll,按F5就可以查看函数反汇编成C语言的代码了
注:以上方法也可以用来查看exe中的函数原型
❾ C语言写的程序 怎么反汇编成汇编语言
在keilc中,单片机的C语言程序可以再DEBUG模式中得到对应的汇编程序。步骤如下:
1、建立工程,导入C文件代码,编译生成hex文件。
3、点击View--Disassembly Window调出汇编窗口,如上图。
通过以上步骤就可以看到与C对应的汇编程序了。
❿ 我是反汇编出来了asm怎么转C语言啊 高手帮帮忙好吗 谁能帮我重新写好吗
建议:
1、如果你有实力,则可以自己写一下,或者直接把一些代码__asm关键字,内联到C代码中。这比较适合算法分析的。
2、可以使用IDA5.5及以上的版本来反汇编,发现汇编代码,可以直接F5 键,生成C语言的伪代码。 这个是IDA的强项哦。