免费注册 登录
»专业资料»IT/计算机»计算机软件及应用»逆向工程入门指南.pdf
收起/展开

逆向工程入门指南

文档类型:pdf 上传时间:2018-06-10 文档页数:633页 文档大小:9.42 M 文档浏览:10970次 文档下载:5次 所需积分:0 学币 文档评分:3.0星

逆向工程入门指南内容摘要: 目錄逆向工程入门指南 1.1Part I 代码模式 1.2 CPU简介 1.2.1 最简单的函数 1.2.2 Hello,world! 1.2.3 函数的开始和结束 1.2.4 栈 1.2.5 printf()与参数处理 1.2.6 scanf() 1.2.7 访问实参 1.2.8 一个或者多个字的返回值 1.2.9 指针 1.2.10 GOTO操作符 1.2.11 条件转跳 1.2.12 选择结构switch()/case/default 1.2.13 循环 1.2.14 对C-Strings的简单处理 1.2.15 用其他东西代替算数操作符 1.2.16 浮点数单元 1.2.17 数组 1.2.18 操纵特定的bit 1.2.19 用线性同余生成器来产生伪随机数 1.2.20 结构体 1.2.21 联合体 1.2.22 指向函数的指针 1.2.23 在32位环境中的64位值 1.2.24 SIMD 1.2.25 64位化 1.2.26 使用SIMD来处理浮点数 1.2.27 关于ARM的特殊细节 1.2.28 关于MIPS的特殊细节 1.2.29Part II 重要的基础知识 1.3 有符号数的表示 1.3.1 字节序 1.3.2 内存 1.3.3 2 CPU 1.3.4 哈希函数 1.3.5Part III 更高级些的例子 1.4 温度转换 1.4.1 斐波那契数列 1.4.2 CRC32的计算实例 1.4.3 网址的计算实例 1.4.4 循环:几个迭代器 1.4.5 Duff’s device 1.4.6 除以9 1.4.7 将字符串转化为数字(atoi()) 1.4.8 内联函数 1.4.9 C99 的约束 1.4.10 无分支的abs()函数 1.4.11 参数可变的函数 1.4.12 字符串截取 1.4.13 toupper()函数 1.4.14 不正确的反汇编代码 1.4.15 花指令 1.4.16 C++ 1.4.17 负的数组引索 1.4.18 Windoes 16-bit 1.4.19Part IV JAVA 1.5 Java 1.5.1Part V 在代码里面寻找重要又有趣的东西 1.6 可执行文件的识别 1.6.1 和外部世界的交流(win32) 1.6.2 字符串 1.6.3 调用断言 1.6.4 常量 1.6.5 找到真正的指令 1.6.6 可疑代码的模式 1.6.7 在追踪时使用Magic numbers 1.6.8 其他东西 1.6.9Part VI 操作系统的特性 1.7 参数传递方法(调用规则) 1.7.1 本地线程储存区 1.7.2 系统调用 1.7.3 Linux 1.7.4 3 Windows-NT 1.7.5Part VII 工具 1.8 反汇编器 1.8.1 调试器 1.8.2 系统调用的追踪 1.8.3 反编译器 1.8.4 其他工具 1.8.5Part IX 逆向文件格式的例子 1.9 基本的异或加密 1.9.1 Millenium 的存档文件 1.9.2 Oracle RDBMS SYM-files 1.9.3 Oracle RDBMS MSB-files 1.9.4后记 1.10 附录 1.10.1附录 1.11 x86 1.11.1 ARM 1.11.2 MIPS 1.11.3 一些GCC库函数 1.11.4 一些MIPS库函数 1.11.5 速查表 1.11.6缩略词表 1.12杂项 1.13快速引索 1.14参考文献 1.15 4 逆向工程入门指南逆向工程入门指南Reverse Engineering for BeginnersDennis Yurichev CC-署名-非商业使用-禁止演绎©2013-2015, Dennis Yurichev.《Reverse-Engineering-for-Beginners》中文翻 5 逆向工程入门指南译版一些说明 本分支是基于乌云所翻译的《RE4B》所衍生的翻译版本。经过乌云允许后, 我们fork了它并进行一些错误的修复和更新。 人邮社出版的《RE4B》翻译版与本分支无任何关系,是由Archer和Anti团队一 起翻译而成。 和人邮社沟通后,因翻译版权问题,本分支只会对已翻译的内容进行错误修 复。不会再对作者的主干分支进行同步更新。 有兴趣的可以加QQ群一起交流逆向工程:565270515 请勿再fork本分支进行传播参与过的翻译人员(如有遗漏烦请提醒一声) 瞌睡龙、糖果、blast、magix526、Larryxi、左懒、DM_、Zing、inkydragon、 xqin 6 Part I 代码模式Part I 代码模式 7 CPU简介Part I 代码片段 Everything is comprehended in comparison - Author unknown我在开始学C/C++的时候,经常写一些小段的代码编译一下,然后观察输出的汇编代码。这种习惯让我很容易理解代码背后到底发生了什么。这种习惯让C/C++代码和编译器产生的汇编语言的关系深深地印在我的脑海里,对我来说很容易就能通过汇编代码想出C代码和函数粗略的样子。或许这个技巧对其他初学者能有所帮助。本书有时候会用到一些旧的编译器,这是为了尽可能得到最短的(最简单)代码片段。关于练习作者在学习C语言的时候,经常些写一些C语言的小函数,然后逐渐的将他们重写成汇编语言,并尝试让代码尽可能的短。现在这种做法不是很值得提倡,因为很难在效率上和现代编译器相竞争。不过这是一种深入理解汇编语言的好方法。因此,你可以放轻松一些,随便在这本书里找一段汇编代码,然后尝试者让它更短一些。当然不要忘记测试你所写的汇编代码。优化等级和调试信息源代码可以用不同的编译器,以不同的优化等级来编译。 典型的编译器有三种优化等级,其中0级代表不优化。优化既可以针对代码的体积,也可以针对代码的运行速度。一个无优化的编译器编译会更快一点,生成的代码也更容易理解一些(虽然很冗长)。反之一个带优化的编译器会运行的更慢,并编译出运行的更快的代码(但代码并不会更紧凑)。除了优化的级别和方向外,一个编译器还可能在生成的文件里包含一些调试信息,这样的代码更容易调试。个编译器的一个重要特性是,在输出文件里面,可能会有源代码到机器码地址的连接。另一方面,带优化的编译器,更倾向于将所有的源代码优化掉后再输出,因此源代码不会出现在输出的机器码里。一个逆向工程师这两种情况都有可能遇到,因为有的开发者会打开优化,有的不会。所以,在这本书里,我们会尽可能关注每个例子的调试和发行版本的代码特征。第一章CPU简介CPU是一种可以执行由机器码组成的程序的设备。

逆向工程入门指南
1.11.21.2.11.2.21.2.31.2.41.2.51.2.61.2.71.2.81.2.91.2.101.2
1.3.41.3.51.41.4.11.4.21.4.31.4.41.4.51.4.61.4.71.4.81.4.91.
1.7.51.81.8.11.8.21.8.31.8.41.8.51.91.9.11.9.21.9.31.9.41.10
还剩 629页未读,点此继续全文在线阅读

免费下载逆向工程入门指南到电脑,使用更方便!

本文推荐: 逆向工程入门指南.pdf全文阅读下载  关键词: 逆向工程   工程   入门   入门指南  
温馨提示:逆向工程入门指南.pdf由用户自行上传分享,文档预览可能有差异,下载后仅供学习交流,未经上传用户书面授权,请勿作他用。

逆向工程入门指南pdf目录

< / 633>

QQ|小黑屋|网站声明|网站地图|学文库 ( 冀ICP备06006432号 )

GMT+8, 2020-5-26 11:28 , Processed in 0.289478 second(s), 5 queries , Gzip On, Redis On.

Powered by 学文库 1.0

Copyright © 2019-2020, 学文库

返回顶部