反汇编与逆向编程的区别

反汇编与逆向编程的区别,第1张

反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了

呵呵 首先,java可以反编译,现在已经有反编译软件了,你已经用过了,就知道的确很强大。不过,java相对来说,还是安全的,现在似乎还有种反反编译,听说过,不了解。

这些我们可以通过一些算法去加密之类的,比如md5这样的。所以还是不用担心java的安全性。

然后,java是可以写病毒的。只是,java的使用需要对方先安装jvm之类的,所以说,如果对方没安装,那你病毒就没用了。所以现在很少人用java写病毒,就像linux里很少人会去浪费时间写病毒的。

么汇编其实说白了,就是寄存器 *** 作,

先把这个变量放入寄存器

mov eax 变量

再压入栈,当然也有可能不用push,直接 *** 作eax 也是有可能的。

push 变量

然后对这个变量执行一些 *** 作,最后是

pop 变量

堆栈,通常是汇编中传递参数时用的。还有其它的传参数方式

寄存器传递法

变量传递法

例如:

void main()

{

int i ; //这个变量反汇编之后就是 mov eax i

}

反汇编是将目标程序转换成汇编源程序的,而汇编是将汇编源程序转换成目标程序。将汇编源程序到目标程序的过程叫汇编,将汇编源程序汇编成目标程序的这个程序叫汇编程序。如果你的程序没有错误的话。

先用-d 段地址:段基址 L查看的数据个数

—u找到你转换成小写字母后的一条指令的地址。

-g=cs:0 (表示刚看到的转换成小写字母后的下一条指令的ip),

再用-d 段地址:段基址 L查看的数据个数

到这里就完成了。至于你说的从键盘接受一个大学字母,那得调用int 21h 功能号AH=01H,返回值为AL,是字符的ASCII码值。呵呵,我学的东西很多都忘了。你试试看吧。

以上就是关于反汇编与逆向编程的区别全部的内容,包括:反汇编与逆向编程的区别、JAVA程序能被反汇编吗、讲一个C程序反汇编,其中的局部变量是怎么储存在栈中的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9875041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存