
正文
c++反汇编基础:,反汇编c语言
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问C语言如何转换成汇编语言?
1、理论上来说C语言改成汇编是完全可以的,当然实际上还是有一定难度。
2、运行KEIL,建立工程,导入C语言。编译生成HEX文件,按CTRL+F5进入DEBUG模式。点击View菜单,选择Disassembly Window打开汇编窗口,就可以看到C以及对应的汇编代码了。
3、建立工程,导入C文件代码,编译生成hex文件。按CTRL+F5或者点击菜单Debug--Start/Stop Debug Session 点击View--Disassembly Window调出汇编窗口,如上图。通过以上步骤就可以看到与C对应的汇编程序了。
4、如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码。如果参数是 /FAs 则会同时将源码和汇编代码。
相关问答
Q1: 反汇编的编程原理
当一个程序的分支都被反编译以后,这个程序基本上就是你自己制作的了,你是很了解他的特性的。这样,用反汇编编译程序主体,再把已编译好的程序分支调入程序主体,从而找到漏洞。
汇编是把汇编语言程序翻译为exe,dll中的机器代码,反汇编是这个过程的逆过程。
嘿嘿 汇编:就是将汇编语言源程序翻译成(机器指令表示的二进制文件)目标程序。反汇编就是汇编的反过程,它是将可执行的目标程序翻译成汇编语言源程序的过程。也就是解密。
Q2: 想学逆向和反汇编,请问该看什么书入门
入门级《汇编语言》,推荐清华大学出版社王爽的《汇编语言》,很简单,很好入门。书中内容的编排有一定连贯性,要用到哪部分知识就介绍哪部分知识。
我看过这本书,不太好,不是写的不好,而是说你没有逆向基础的话,不太看得懂,你有基础的话,这本书也没必要看,一句话,可读性不好。---个人看法 建议你看《加密与解密》和《逆向:逆向工程揭秘》这两本。
王爽的汇编语言第二版这本书最好作为入门书籍去读,通俗易懂,容易入门,方便掌握很多汇编语言的基础知识 INTEL汇编语言程序设计第五版,Kip R.Irvine著,温玉杰等译。这本书很经典。。
还要熟悉硬件结构,处理器结构是最基本的了,还有串并口、中断控制器、DMA、USB等等,否则对付密狗之类的东西会搞得你一头雾水;这时候可以看《逆向工程的艺术》...做到以上几点,你就接近于高手了。
《程序员修炼之道》安德鲁·亨特、大卫·托马斯 对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。或许他们还是在校生,但对要自己做什么,还感觉不是很安全。就像草图和架构之间的差别。
Q3: 讲一个C程序反汇编,其中的局部变量是怎么储存在栈中的?
C语言中的局部变量存储在栈里。普通的局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。
C语言中局部变量存在栈里,全局变量存静态存储区。局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。
局部变量存放在栈中。程序运行中有两个存储空间可用,一个是栈,是归属于进程本身的,另外一个是堆,所有进程共用的。局部变量在声明周期为函数内部,其存储空间位于栈中。
程序的局部变量全局变量动态申请数据分别存储在栈里。普通局部变量在堆栈空间上分配,当局部变量的函数被多次调用时,局部变量每次在堆栈上的位置都不相同。
在51单片机的情况下,局部变量还可以存放在寄存器当中的,声明如下:register int count; //count局部变量就存放在寄存器当中了而不是存放在栈中 补充:寄存器变量只能是局部变量,而不能是全局变量和静态变量的。
你好!程序中的局部变量存放在栈中,因而不能太大,如:double a[1000][1000];就可能不能通过编译。用户动态分配的内存,分配于堆中,可以很大。
Q4: VC++可以反汇编吗
1、可以的。Dll文件和EXE文件一样,都属于Windows可执行文件,都遵守PE文件格式。静态反汇编可以通过IDA等软件来进行,动态反编译可以通过Windbg、Ollydbg来进行。
2、你说的没错,目前还没有任何程序能够做到把exe文件反编译成高级语言,因为编译过程是不可逆的,目前只能反编译成汇编语言,你说的那几个软件还有楼上提到的都可以。
3、不需要任何软件,在你要看的源代码行按F9,按F5运行,再在调试工具栏里点反汇编Disassembly就可以看到相应的汇编代码了,如果你的调试工具栏没显示,就点工具菜单-自定义选项的第项的工具栏把调试Debug打钩。
4、可以直接用IDA反汇编VC用C生成的.exe文件,这个是专业的结构清晰。
5、首先,在需要查看反汇编的语句旁插入断点。然后,进入调试模式,也就是直接按F5进入DEBUG模式。接着,在“调试” - “窗口” - 点击“反汇编”选项。则进入反汇编的窗口,查看程序的反汇编信息。
Q5: 反汇编需要很深的汇编基础吗
首先要学会汇编语言。反汇编需要扎实的汇编语言基础。然后简单学习一下win32 API 之后再翻看一下加密解密第三版的一些经验。OK。你就出师了。再不会的话。或者有遇见难题。就翻翻网站帖子。多积累一下经验。多练练就好了。
汇编基础,OD基础,1个月学会,1年熟练,10年精通。。
实话告诉你吧,最为基本的爆破之类的,确实不需要什么汇编编程基础,就很容易学会,可这只是最低级的,许多学了一俩月的菜鸟都会,但是你想要更进一层,就需要有汇编编程基础了,尤其是win32汇编。
自己分析的话需要对汇编算法和数据结构都很熟悉,一般压缩壳问题不大,F8一路跑下去就OK加密壳的话就看你的算法基础了。
c++反汇编基础:的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于反汇编c语言、c++反汇编基础:的信息别忘了在本站进行查找喔。






