‘壹’ vs2013如何启动反汇编
在程序中 F9 F10 分别 是 下断 调试断点
先F9下断 F10调试 然后 下面会有调用 堆斗神栈 的观察窗口 对观察窗口 右键 进入反汇编 就可空凳亏以了.
还有个比较方便的方法 就是在程序 关键代码处 写入
__asm
{
mov eax,eax
mov eax,eax
mov eax,eax
}
花指令
拉到OD中 直接ctrl+s搜索 汇编代码 直接走到关键点粗漏 下断调试
此方法 可以快速 定位 到代码
‘贰’ 如何用MPLAB进行PIC反汇编
MPLAB
应该就可猜袭以。
所谓的机器码应该就是二进制文件吧?
MPLAB IDE 可以进行反汇肆兆灶编(相信它也是最准确最全的PIC反编译工具)
。具体步骤如下:
1.
启动MPLAB IDE 执行Configure菜单下的Select Device选择好芯片
.
2. File菜单下Import导入要反编译的HEX文件
.
3.View菜单下Program Memory 查看程序存储器的内容
,
在程序存储器内容显示窗口的左下角切换到Machine或Symbolic,
在这个窗口上就可以看到每裂扮一个地址和HEX文件对应的ASM“反编译”就是察看源代码,其实最佳的PIC“
反编译”工具就是MPLAB-IDE,也具有察看源代码的功能。不过大家要注意
,
由于PIC采用分页技术,“反编译”后的源程序再次编译后一般FILE--> IMPORT-->IMPORT TO MEMORY -->调入.HEX文件(你的机器码应该是bin文件或者hex文件,都差不多了!)
然后再WINDOW中打开PROGRAM MEMORY窗口,就得到了源程序
注意所有未用的程序段反汇编后全部成了XORLW 0FFH
‘叁’ 如何在VC++6.0中进行反汇编
汇编是低级语言,基本上激物就是机器语言,vc6写出的代码cpu是不认得的
需要经过编译成汇编语言,打包成exe文件,程序才能被执行团粗
反汇编就是你只有exe文件,需要辅助软件(比如Ollydbg、w32dsm以及编程环境vc6等)
通过这些软件可以把exe打开成汇编代塌铅镇码!
‘肆’ 如何进行反汇编
你是想问如何反汇编还是想问反汇编有什么用?
如果是如何反汇编,那很简单
OllyDBG是最常用的ring3层动态反汇编工具
WinDBG和SoftICE是强大的ring0层动态反汇编工具~
而静态反汇编必然是罩锋碧IDA最为强大了~~
方法简单的令人蛋疼……就是把你要反汇编的程序物举拖拽到反汇编器里即可~
WinDBG和SoftICE可能不支持拖拽……那就文件--打开……就这样~
反汇编程序自动完成反汇编的工作……
其实难点不在于反汇编本身
而是利用反汇编去完成我们要做的目标~~
这是一门学问~也不是一句话两句话能教会的~~~
至于反汇编能做什么用
并不像某位匿名用户说的那样肮脏~
心中有佛则处处是佛~
心中有狗屎则处处是狗屎
连名字都不敢露可见其本身心理的阴暗程度……
刀可以杀人也可以救人
反汇编只是一种手段,一种工具
它本身并没有好坏之分,关键要看谁在使用,使用的目的是什么~~
确实,反汇编可以逆向别人的劳动成果收为己用,可基激以破解别人的程序侵害利益
但同时,如果逆向的是一个病毒,就可以分析它的工作原理,找出防御和查杀这种病毒的方法
而反汇编一个软件,有时也能发掘出这款软件的漏洞所在
所以对反病毒和漏洞分析的从业人员来讲,反汇编是必备的基础技能~
正与邪,好与坏
在于人,不在于工具~~~
‘伍’ 什么软件能将C语言的执行文件反汇编为汇编源代码
用一个反汇编调试器即可。
IDA或者OllyDbg,方便直观,当然VC也有自带的调试器,不过很麻烦,不如IDA或者OD方便。
补充:
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可以控制硬件电路完成你程序想执行的操作。
‘陆’ 不知道反汇编怎么来弄
反汇编是将目睁雹标程序转换成汇编源程序的,而汇编是将汇编源程序转换成目标程序。将汇编源程序到目标程序的过程叫汇编,将汇编源程序汇编成目标程序的这个程序叫汇编程序。信帆如果你的程序没有错误的话。
先用-d 段地址:段基址 L查看的数据个数
—u找到你转换成小写字母后的一条指令的地址。
-g=cs:0 **(**表示刚看到的转换成小写字母后的下一滑早雹条指令的ip),
再用-d 段地址:段基址 L查看的数据个数
到这里就完成了。至于你说的从键盘接受一个大学字母,那得调用int 21h 功能号AH=01H,返回值为AL,是字符的ASCII码值。呵呵,我学的东西很多都忘了。你试试看吧。
‘柒’ C语言写的程序 怎么反汇编成汇编语言
如果你手上没有什么第三方工知具的话,可以用DEBUG,
比如你用C写了一腔困搏个程序1.exe
生成的位置是d:\1.exe
打开电脑左下角开始--->运行--->输入双引号里面道伍祥的"cmd"--->确定
弹出一个黑色窗体,在上面输入输入双引号里面尺滑的"debug
d:\1.exe"
然后回车
接着会出现一个"-"符号
然后输入"u"
回车
就可回以看到相应的汇编了,这只是一个简单的例子,有兴趣可以学下DEBUG用法,要是大工程的话,还是建立答用别的工具,
注意:这只是在windows平台下用,像linux等别的平台不知道有没有.
‘捌’ 怎样反汇编
有很多软件都能反汇编,直接用objmp也行。用ollydbg也行,IDA 也行。都很容易的。
‘玖’ C语言写的程序 怎么反汇编成汇编语言
在keilc中,单片机的C语行岁言程序可以再DEBUG模式中得到对应的汇编程序。步骤如下:
1、建立工程档核睁氏运,导入C文件代码,编译生成hex文件。
3、点击View--Disassembly Window调出汇编窗口,如上图。
通过以上步骤就可以看到与C对应的汇编程序了。
‘拾’ 什么叫反汇编如何反汇编
反汇编我个人认为就可把已编译好的程中纤野序进行脱壳并查看该程序的指令
里面有很多寄存器卖喊
一般是用于搞破解
我就知道那么竖慎多