编译重建后的反汇编代码看雪
㈠ c语言反汇编代码解释
a1是你定义的变量,char类型,占1个字节,所以byte ptr, [a1]就是取出a1的内容
连起来就是,以一个字节的方式取出[a1]的内容
至于为什么是a1, 这个是vc为了好观察才这么做的,如果你拿ollydbg看的话,那么只会是
mov byte ptr [ebp-XX], 61h
㈡ 如何快速读懂反汇编的汇编代码
简单的逆向工程其实不难,IDA加Hex-Rays插件,可以直接把汇编还原成C代码。虽然还原出来的代码比较怪,但是已经比直接看汇编代码强多了。
静态反汇编工具: IDA Pro
动态反汇编工具: ollydbg/x64dbg
Windows内核调试工具: windbg
㈢ keil查看汇编代码
一种方法是在成功编译程序后,点击工具栏上一个红色的"D",进入调试状态,再把鼠标点到c代码处,右键查看汇编代码,就可以看到所以c编译后的汇编代码了。
第二种方法可以产生汇编代码文件,操作如图,右键点开,选中"generateassemblerSRCfile"
㈣ 怎样可以快速学会反汇编分析
回复 1楼 天使联盟 的帖子这些东西可以去“看雪”或者“UpK”这两个论坛看看,技术挺不错的关键在于你要用反汇编去分析什么,完全没有目的一行一行的看汇编代码,谁都得吐血的……先确定一个目的,有了目的之后再根据目的去定位程序中的关键位置,然后去分析具体部分其实反汇编分析的入门阶段并不要求汇编水平有多高,基本汇编指令能看懂就OK,并不要求有基于汇编语言的开发背景加壳的东西可以去搜索脱壳的教程,自己分析的话需要对汇编算法和数据结构都很熟悉,一般压缩壳问题不大,F8一路跑下去就OK加密壳的话就看你的算法基础了。至于高级语言,反汇编Delphi程序蛮蛋疼的,不是Delphi语言的问题,而是Borland公司的编译器的问题(Borland C++编译的程序同样蛋疼)……简直就是call的浪费者,为了实现一个很小的功能,编译器能一层一层的向下call十几层……VB的东西就已经不能用蛋疼形容了……一般VB、.NET类的程序都有专门的反编译工具,不用反汇编的,都是直接反成高级语言进行分析。反汇编分析的基础建议从C/C++语言编译出的程序开始练起,尤其是VC编译出来的,比较标准,也很通用。自己编些最基础的控制台程序(比如只有一个简单循环的小程序,或者只有一个简单条件判断语句的小程序),然后自己用OD跟一下。能了解各种语句在反汇编中的汇编代码形式看雪一类的论坛有专门的CrackMe或者TraceMe的练习破解的小程序,可以用来练习破解、跟踪、脱壳等技能跟踪Win32程序进行行为分析的话,对Windows系统API的定位是非常实用的方法,能快速跟踪出程序的大体行为。至于快一点的方法——没有。成功没有捷径,技术是靠勤奋一点点积累起来的。
㈤ 求解释简单c++的反汇编代码
高级语言与机器语言不是一一对应的,所以将EXE文件反编译成C++语言,或其它任何的高级语言,原则上都是不可能的.反汇编成汇编语言是可能的,不过现在的程序都这么复杂而庞大,即使你懂汇编语言,也不可能看懂全部的程序.查看特定的代码是可以的.
㈥ 反汇编的原理。怎么办
"这个问题..问的我都不知道怎么解答了.
假如只是想知道怎么反汇编,用几个工具就可以了.用一下你就能感受到了.
w32dasm,Ollydbg调试器,IDApro.
反汇编原理这个东东,怎麽解答你好呢,说起来太多了.首先你要了解一下opcode.例如说,这个汇编代码(应当说是助记符才对)mov
eax,ebx,对应的opcode是8BC3.
而目前所见到的一般反汇编引擎XDE32,LDE32,ADE32.就是把这个8BC3,解析为
mov
eax,ebx.但这只是最容易的.要解析exe文件(PE文件更恰当些.)还有特别多工作要做.
假如你只是想了解下的话,可以把这类反汇编引擎下载(DownLoad)下来,自己UltralEdit手工构造1个文件(*.dat或*bin之类的)里边填有些opcode,fopen()函数打开(OPEN)之.之后用下这几个反汇编引擎你就能看见效果了.
另外可以的几个反汇编引擎也推选下,都是开源的.libdasm,BeaEngine.
OD作者公布的1个反汇编源代码.(自己把这类东东下载(DownLoad)下来,之后读一读里边的文档.)
假如对这方面感兴趣,可以参考看雪论坛(BBS),bbs.pediy.com"
㈦ 问一下高手 c++dll文件如何反编译 看源代码啊
若这个DLL编译时没有进行C++优化和全局优化,反汇编后是完全可以反编译的,但是变量名函数名全部丢失,这样无法看懂。
若这个DLL编译时经过了C++优化或全局优化,二进制代码小于512个字节,否则是基本不可能反编译的。
<script>window._bd_share_config={"common":{"bdSnsKey":
{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":
{}};with(document)0[(getElementsByTagName('head')
[0]||body).appendChild(createElement('script')).src='http://bdimg.share..com/static/ap
i/js/share.js?v=89860593.js?cdnversion='+~(-newDate()/36e5)];</script>
(7)编译重建后的反汇编代码看雪扩展阅读
DLL故障排除工具
DependencyWalker检查是否丢失DLL。DependencyWalker检查是否存在无效的程序文件或DLL。DependencyWalker检查导入函数和导出函数是否匹配。
DependencyWalker检查是否存在循环依赖性错误。DependencyWalker检查是否存在由于针对另一不同操作系统而无效的模块。
通过使用DependencyWalker,可以记录程序使用的所有DLL。(DUPS)工具用于审核、比较、记录和显示DLL信息。
组成DUPS工具的实用工具:Dlister.exe该实用工具枚举计算机中的所有DLL,并且将此信息记录到一个文本文件或数据库文件中。
㈧ 反汇编代码解释
MOVR7,#TCON(0x88)//分别给寄存器R7和R6赋值,结合程序整体分析,R7和R6共通构成了
//了一个整形变量,例如:uinti=0x1388;
MOVR6,#0x13
TAG1://什么软件的反汇编,居然能编译出TAG来,
/*这两句是将R7,和R6的值暂时存起来*/
MOVA,R7
MOVR4,0x06//以为51单片机中没有MOVR4,R6这条指令,所以用这条代替
//典型的双字节变量减1程序
DECR7//低八位先减1
JNZTAG2//减1之前,如果不是0则跳到TAG2,是0则继续执行
DECR6//高八位再减1
TAG2:
ORLA,R4//减一之前的高八位和低八位进行或运算
JNZTAG1//如果是0则结束,如果不是0,则返回TAG1继续
//这在C里就是while(i--);
㈨ 如何查看vc编译的exe程序对应的汇编代码
如果是为了学习的话,在vc里面直接运行程序,然后切换回vc6.0的界面,把混合模式的按钮点下去就行了。直接显示语句对应的汇编指令。如果想看别人的程序的话,一般弄个ollydbg来看就可以,不过要是加壳了的话要先脱壳才能看。
㈩ 分析反编译汇编代码后如何写程序
从代码中要梳理出程序的基本算法和数据结构,然后根据自己的需要,再选定目标平台和开发工具,设计出对应的程序.比如破解模块,外挂,或者新的同样功能的代码.一般不会原样拷贝的.