b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

unicode字符n 《逆向分析实战》数据的存储及表示形式(6)

电脑杂谈  发布时间:2018-01-12 02:12:11  来源:网络整理

2.直接转换比较法

所谓直接转换比较法,是利用字节序转换函数将所定义的值进行转换,然后用转换后的值与原值进行比较。如果原值与转换后的值相同,说明是大尾方式,否则为小尾方式。

代码如下:

这种方式比较直接,其前提是网络字节序是固定的,就是大尾方式。因为是比较,所以就要有一个参照物。如果原值转换后的结果与原值相同,就说明该主机是大尾方式存储,反之则是小尾方式。

1.5总结

本文对内存中存储基础数据的方式进行了阐述,并且在最后部分介绍了如何使用OD调试器来查看内存中的数据。在学习编程时,都会从数据类型开始介绍,不同的数据类型都是以二进制的方式存储在内存中的,只是它们存储的方式不同,或者是存储的宽度不同。在我们学习逆向时,也首先讲解了数据的基础及数据的存储方式。

也许你想知道什么是软件逆向,也许你已经听说过软件逆向,从而想要学习软件逆向。不管你抱着什么目的翻开本书,笔者还是在你阅读本书之前,先来说一些软件逆向的知识!

什么是“软件逆向工程”

术语“逆向工程”源自硬件领域,在软件领域目前还没有明确的定义。就笔者个人的理解简单来说,软件逆向是通过观察分析软件或程序的行为、数据和代码等,来还原其设计实现,或者推导出更高抽象层次的表示。

软件工程与软件逆向工程的区别

对于软件工程而言,软件的设计讲究封装,将各个模块进行封装,将具体的实现进行隐藏,只暴露一个接口给使用者。对于模块的使用者而言,封装好的模块相当于一个“黑盒子”,使用者使用“盒子”时,无需关心“盒子”的内部实现,只需要按照模块预留的接口进行使用即可。

软件逆向工程对于软件工程而言,却是正好相反的。对软件进行逆向工程时要查看软件的行为,即软件的输入与输出的情况;要查看软件的文件列表,即软件使用了哪些动态链接库(哪些动态连接库是作者编写的,哪些动态连接库是系统提供的),有哪些配置文件,甚至还要通过一系列的工具查看软件的文件结构、反汇编代码等。

对比软件工程与软件逆向工程可以发现,软件工程是在封装、实现一个具备某种功能的“黑盒子”,而软件逆向工程则是在分析“黑盒子”并尝试还原封装的实现与设计。后者对于前者而言是一个相反的过程,因此称为“软件逆向工程”。

学习软件逆向工程与软件工程的区别

对于软件逆向工程而言,学习逆向知识,除了要学习逆向知识本身外,还需要掌握各种不同的逆向工具,或者说逆向知识中重要的一个环节就是逆向工具的使用。对于软件开发而言,软件开发工具在软件开发中所占据的位置远远达不到逆向工具在逆向领域中的位置。因此,读者在学习编程时可能更注重的是编程语言本身而不是工具,但是在学习逆向时,逆向知识是不可能抛开逆向工具而独立进行学习的。

本书的主要内容

延伸推荐

点击关键词阅读更多新书:

Python|机器学习|Kotlin|Java|移动开发|机器人|有奖活动|Web前端|书单


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-59929-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 杨师师
      杨师师

      妈的

    • 远藤雄弥
      远藤雄弥

      于是俺们厂里买了好多跟废品差不多的浙商设备

    每日福利
    热点图片
    拼命载入中...