C++反汇编与逆向分析技术揭秘

出版时间:2011-10  出版社:机械工业出版社华章公司  作者:钱林松,赵海旭  页数:411  
Tag标签:无  

内容概要

《C++反汇编与逆向分析技术揭秘》本书既是一本全面而系统地讲解反汇编与逆向分析技术的安全类专著,又是一部深刻揭示C++内部工作机制的程序设计类著作。理论与实践并重,理论部分系统地讲解了C++的各种语法特性和元素的逆向分析方法和流程,重在授人以渔;实践部分通过几个经典的案例演示了逆向分析技术的具体实施步骤和方法。
全书共分为三大部分:第一部分主要介绍了VC++6.0、OllyDBG和反汇编静态分析工具的使用,以及反汇编引擎的工作原理;第二部分以C/C++语法为导向,以VC++6.0为例,深入解析了每个C/C++知识点的汇编表现形式,包括基本数据类型、表达式、流程控制语句、函数、变量、数组、指针、结构体、类、构造函数、析构函数、虚函数、继承和多重继承、异常处理等,这部分内容重在修炼“内功”,不仅讲解了调试和识别各种C/C++语句的方法,而且还深入剖析了各知识点的底层机制;第三部分是逆向分析技术的实际应用,通过对PEiD、“熊猫烧香”病毒、OllyDBG调试器等的逆向分析将理论和实践很好地融合在了一起。
本书适合所有软件安全领域的工作者、想了解C++内部机制的中高级程序员,以及对Windows底层原理感兴趣的技术人员阅读。

作者简介

钱林松,资深安全技术专家、软件开发工程师和架构师,从事计算机安全和软件开发工作12年,实践经验极其丰富。尤其精通软件逆向分析技术,对C/C++技术和Windows的底层机制也有非常深入的研究。武汉科锐软件技术有限公司创始人,教学经验丰富,多年来,为国内计算机安全领域培养和输送了大量的人才。活跃于看雪论坛,有较高的知名度和影响力。

书籍目录

前言
第一部分 准备工作
第1章 熟悉工作环境和相关工具
1.1 调试工具Microsoft Visual C++
6.0和OllyDBG
1.2 反汇编静态分析工具IDA
1.3 反汇编引擎的工作原理
1.4 本章小结
第二部分 C++反汇编揭秘
第2章 基本数据类型的表现形式
2.1 整数类型
2.2 浮点数类型
2.3 字符和字符串
2.4 布尔类型
2.5 地址、指针和引用
2.6 常量
2.7 本章小结
第3章 认识启动函数,找到用户入口
3.1 程序的真正入口
3.2 了解VC++ 6.0的启动函数
3.3 main函数的识别
3.4 本章小结
第4章 观察各种表达式的求值过程
4.1 算术运算和赋值
4.2 关系运算和逻辑运算
4.3 位运算
4.4 编译器使用的优化技巧
4.5 一次算法逆向之旅
4.6 本章小结
第5章 流程控制语句的识别
5.1 if语句
5.2 if…else…语句
5.3 用if构成的多分支流程
5.4 switch的真相
5.5 难以构成跳转表的switch
5.6 降低判定树的高度
5.7 dowhilefor的比较
5.8 编译器对循环结构的优化
5.9 本章小结
第6章 函数的工作原理
6.1 栈帧的形成和关闭
6.2 各种调用方式的考察
6.3 使用ebp或esp寻址
6.4 函数的参数
6.5 函数的返回值
6.6 回顾
6.7 本章小结
第7章 变量在内存中的位置和访问方式
7.1 全局变量和局部变量的区别
7.2 局部静态变量的工作方式
7.3 堆变量
7.4 本章小结
第8章 数组和指针的寻址
8.1 数组在函数内
8.2 数组作为参数
8.3 数组作为返回值
8.4 下标寻址和指针寻址
8.5 多维数组
8.6 存放指针类型数据的数组
8.7 指向数组的指针变量
8.8 函数指针
8.9 本章小结
第9章 结构体和类
9.1 对象的内存布局
9.2 this指针
9.3 静态数据成员
9.4 对象作为函数参数
9.5 对象作为返回值
9.6 本章小结
第10章 关于构造函数和析构函数
10.1 构造函数的出现时机
10.2 每个对象都有默认的构造函数吗
10.3 析构函数的出现时机
10.4 本章小结
第11章 关于虚函数
11.1 虚函数的机制
11.2 虚函数的识别
11.3 本章小结
第12章 从内存角度看继承和多重继承
12.1 识别类和类之间的关系
12.2 多重继承
12.3 虚基类
12.4 菱形继承
12.5 本章小结
第13章 异常处理
13.1 异常处理的相关知识
13.2 异常类型为基本数据类型的处理流程
13.3 异常类型为对象的处理流程
13.4 识别异常处理
13.5 本章小结
第三部分 逆向分析技术应用
第14章 PEiD的工作原理分析
14.1 开发环境的识别
14.2 开发环境的伪造
14.3 本章小结
第15章 “熊猫烧香”病毒逆向分析
15.1 调试环境配置
15.2 病毒程序初步分析
15.3 “熊猫烧香”的启动过程分析
15.4 “熊猫烧香”的自我保护分析
15.5 “熊猫烧香”的感染过程分析
15.6 本章小结
第16章 调试器OllyDBG的工作原理分析
16.1 INT3断点
16.2 内存断点
16.3 硬件断点
16.4 异常处理机制
16.5 加载调试程序
16.6 本章小结
第17章 反汇编代码的重建与编译
17.1 重建反汇编代码
17.2 编译重建后的反汇编代码
17.3 本章小结
参考文献

章节摘录

版权页:插图:下标寻址方式也可以被指针寻址方式所代替,但指针寻址方式需要两次间接访问才能访问到数组内的元素,第一次是访问指针变量,第二次才能访问到数组元素,故指针寻址的执行效率不会高于下标寻址,但是在使用的过程中更加方便。数组下标和指针的寻址如此相似,如何在反汇编代码中区分它们呢?只要抓住一点即可,那就是指针寻址需要两次以上间接访问才可以得到数据。因此,在出现了两次间接访问的反汇编代码中,如果第一次间接访问得到的值作为地址,则必然存在指针。图8.6就使用寄存器作为指针变量,保存全局数组的地址,从而利用保存了全局数组首地址的寄存器对该数组进行间接访问操作。数组下标寻址的识别相对复杂,下标为常量时,由于数组的元素长度固定,siZeof(type)*n也为常量,产生了常量折叠,编译前可直接算出偏移量,因此只需使用数组首地址作为基址加偏移即可寻址相关数据,不会出现二次寻址现象。当下标为变量或者变量表达式时,会明显体现出数组的寻址公式,且发生两次内存访问,但是和指针寻址明显不同,第一次访问的是下标,这个值一般不会作为地址使用,且代入公式计算后才得到地址。值得注意的是,在打开优化选项02后,需留心各种优化方式。

媒体关注与评论

“工欲善其事,必先利其器”。我经常对课题组的研究生说:“学习知识要把握事物本质(即夯实基础),基础牢固了,学习任何技术都能事半功倍,反之亦然。”这是一本能为程序员(尤其是C++程序员)打牢基础的专业书籍,它将引导你一步一步去深入探究和分析程序的本质,从而逐渐让你在专业上感到踏实和自信,并在这个领域有豁然开朗的感觉。本书非常适合那些想通过反汇编与逆向分析等技术手段探究C++应用底层奥秘的人,当然,你还要能耐得住寂寞!  ——彭国军 武汉大学计算机学院副教授我与老钱相识已经相当长时间了,他给我的印象是为人简单、厚道、仗义。他的书一如他的为人,用简单、精炼、易懂的语言诠释了程序世界里晦涩难懂的反汇编与逆向分析技术,是一本不可多得的好书。  ——霄建云 中南民族大学计算机科学学院副院长随着互联网技术的不断发展,以及互联网应用的不断暴增和普及,计算机系统的安全保护在今天已经成为一个重要的课题。有一群默默无闻的工作者,他们的职业是“病毒分析”,一个合格的病毒分析人员必须具备过硬的软件逆向技术。本书是一本可以给病毒分析人员系统而全面的指导的专业书籍,对反汇编与逆向分析技术进行了深入且全面的讲解,对有志于从事软件安全相关工作的人来说,本书将对他们大有裨益,值得推荐。  ——蠕辉 金山网络安全副总监一口气读完本书的初稿,细细回味,有几点突出的感受:第一,视角独特、内容丰富,是作者多年实践和教学经验的结晶;第二,深入浅出、重视基础,不适合走马观花式地阅读,而是要慢慢研读;第三,内容严谨、语言精炼,从中可以看出作者对逆向分析技术之精通和写作本书的良苦用心。如果你想系统且深入地学习反汇编与逆向分析技术,本书是非常不错的选择,强烈推荐!  ——单海波 安全技术专家/《微软,NET程序的加密与解密》一书的合著者软件逆向工程主要是通过研究和分析现有的软件产品来发现其规律,从而改进并超越现有产品的过程。通过逆向工程技术,研究人员可以学习他人的编程技术和技巧,窥探商业软件的秘密,或开发与其兼容的软件。同时,利用逆向工程技术可以对现有软件进行改造,可以在没有源代码的情况下修改目标程序的二进制代码,扩展程序的功能。掌握一定的逆向技术,对程序员和安全工作者十分有好处。但由于技术比较复杂,初学者往往不知从何入手,既不知道学习的方向,又缺少经验和有效的分析工具,大都事倍功半。本书是学习逆向工程技术的一个很好的选择,它从软件逆向技术的基础开始讲解,逐步深入,在注重阐述逆向技术理论的同时,又结合生动的案例分析,深入浅出地向读者展示了软件逆向技术的精髓和实用技巧,能够帮助读者快速深入逆向工程技术的核心领域,获得宝贵的知识和经验。诚然,要深入理解并熟练应用逆向工程技术,需要大家的勤奋与毅力,这个过程可能有时是枯燥的,但是当你的功力达到一定水平的时候,你会在软件分析的过程中产生一种直觉,看到目标的汇编代码,就能知道它们的作用和隐藏在其中的奥秘。这时,你会发现逆向工程是一门优雅的数码艺术展现形式,它的精神是“自由”。  ——段钢看雪软件安全网站创始人

编辑推荐

《C++反汇编与逆向分析技术揭秘》:深度揭秘软件逆向分析技术的流程与方法,理论与实践完美结合,由安全领域资深专家亲自执笔,看雪软件安全网站创始人段钢等多位安全领域专家联袂推荐。

图书封面

图书标签Tags

评论、评分、阅读与下载


    C++反汇编与逆向分析技术揭秘 PDF格式下载


用户评论 (总计124条)

 
 

  •   目前刚翻看到第七章,实在是按捺不住心中激动的心情,必须要上来认真评论一下以供广大读者参考!

    本人从事C++开发已有8年有余看到此书的最大感触就是相见恨晚,在多年的软件开发及调试过程中不知度过了多少个不眠之夜呕心沥血积累的经验在本书中皆有细致的讲解。

    此书中不仅详细介绍了C++程序在执行中涉及到的技术细节和原理乃至为什么要如此设计的原因。如果一个计算机专业毕业略有汇编基础的C++程序员在入门之时能得到此书的指导,势必在今后的工作中能少走很多弯路省下不少不眠之夜和业余时间与家人欢聚一堂。或许刚刚入行的程序员第一时间无法读透此书中的全部内容,本人建议以半年为单位反复阅读并结合工作中遇到的问题有针对性的寻求答案。
    虽然我的日常工作丝毫不涉及逆向工程,但一个的C++应用程序在数以千万计的用户系统中会出现千奇百怪的异常现象,遇到各种崩溃各种调试时反汇编是最有效且唯一的办法。正像作者引言所释反汇编技术的资料少之又少且晦涩难懂,很难得到重视所以发布出去的程序出现BUG总是会让程序员和测试人员焦头烂额。本书的涉及的技术内容正好填补了这一空白,即便是有多年开发经验的熟练开发人员也会在此书中了解到底层技术的实现为日后的研发调试工作打下基础。
    如果您想在C++的世界里风雨无阻那么这本书真的是不二之选,评价的可能有些过高但仍无法表述目前激动的心情,那么最后做一总结:是托儿死全家吧!
  •   C++反汇编与逆向分析技术揭秘(《程序员》杂志“2011年度十大最具技术影响力图书”,好评如潮,热销中)好书。
  •   阅读这本书需要一定的C++编程、32位汇编、逆向分析等基础,适合向老鸟转变的菜鸟学习。
  •   正是我所需要的,对c++有了更深的理解。并对pe,病毒分析,软件逆向起到了打基础的作用
  •   对逆向技术的讲解很清晰
  •   想玩逆向和病毒分析,这本书不容错过
  •   本人目前正在学习C++的逆向破解的技术本书,对我的帮助比较大的,个人感觉书不错,但本书适合有一定技术的人看。
  •   逆向技术经典啊 要仔细研究研究
  •   做逆向分析不容易啊,终于看到了一本我很喜欢的书,值得好好研究!
  •   一本关于逆向分析的好书,但是有些地方有点晦涩,需要仔细研读。
  •   了解原理,学习逆向的好书
  •   内容很好,适合有一定基础但未入门逆向的同学看。。。。收到这本书,由于过于兴奋,忘记上线确认收货了
  •   工作需要买的,可以做为学习逆向的指导书.
  •   对逆向很感兴趣。
  •   对逆向感兴趣的朋友看看,
  •   自己一直想学习逆向,但网上资料太少,稂莠不齐,这本书不错!
  •   吐血推荐,学习逆向的必备宝典
  •   通过逆向学习,可以让你编程的能力更上一层楼。非常好的书,值得推荐。
  •   C++对应的汇编代码的关键部分都有很好的分析,例子丰富,推荐
  •   看出钱老师的C++和反汇编的功底很深。值得学习的一本书。提高内功可以。
  •   讲述很多逆向方面的知识,对正向编程相互促进。
  •   刚到手,还没看完,但看目录是本理论与实践并重的书希望通过此书能了解到windows底层原理
  •   从内容上来讲,没有汇编和C++基础的最好不去看,如果你有一定基础,再想深入学习,确实是一本好书,能让你掌握平常无法了解的内部机理,是一部练“内功”的书。
  •   这本是我看过的反汇编教程中最好的教材,很深入。
  •   这本书的内容很适合初学反汇编的同学,讲得比较详细,易于掌握了解。
  •   这本书写的很不错,一边学习C++语言,一边学习反汇编,对C++的理解和认识能够更深!
  •   开始搞反汇编了,突然喜欢上了。c++的基础比较扎实。正好用上。
  •   书的内容适合继续驱动程序开发设计或嵌入式开发者使用,从另一个角度对汇编语言进行复习和解释,有助于更深刻地理解C++的很多特性。
  •   “深入了解C++对象模型”的绝佳拍档,C++对象、异常等细节的汇编级的实现
  •   长期看外国翻译书籍,没想到中国人写的书也可以这样棒,推荐所有想提高自己的c++程序员都应该看看的好书,可以和《深入探索c++对象模型》一起看
  •   书中的知识是些鸡肋(一般用不到)。对计算机有兴趣的人,肯定不会只满足cc++编程的学习,而且更不会只满足看完这本书。期待看雪更牛的书。。。。。
  •   不少编程者对汇编有恐惧感。阅读本书后,汇编代码也许就变身为金庸武侠了。
  •   就像书上说的,要么是想从事安全行业的,或是想提升C++修为的,都值得一读
  •   是理解编译器内部细节的一本好书!比较注重底层!
  •   无论是C++ 还是 汇编都有一定的很好的帮助!
  •   想了解程序的内部原理么
    想知道程序的实际运行效果么
    就看这本书吧 很不错
  •   本书从简单程序入手,在学习过程中逐步提高难度,慢慢形成一套自己的分析代码的风格和习惯~
  •   借这个平台反映问题,昨天购买VC++开发实战真功夫电子书,极其**受骗,该电子书严重损伤当当网信誉,订单号6895881084,经联系当当,回短信说不能退,强烈要求退货,不允许当当网欺骗销售,请审核员给予反映相关问题,我能做的是在没退该单前将不再当当购买任何商品,直至退6895881084,强烈反对霸王条款和欺骗销售!目前已经取消了6884398504订单,如强硬不退6895881084,将到各大网站论坛去评价当当欺骗销售行为,特此通知!后果由当当担负!6895881084单让人非常生气,同时对当当销售产生了很大的不满!我们能做的就是对于电子书不退货霸权条款坚决抵制,如果当当为了挣45元昧心钱觉得失去一个顾客无所谓,你们就一意孤行吧,请把我的意见反馈到你们负责人那里,谢谢!
  •   刚收到,翻了一下。发现书还不错,知识很丰富,但同时要求有一定的计算机组成原理、编译原理等知识。书中会简单提及,但详细的还需要自己学习。书很不错,推荐一下~其他的不足就是估计在运送途中书有磕碰,书脊上部有很严重的褶皱,不过不影响阅读。
  •   很实在的分析书籍,基础很扎实
  •   让人深入理解C++的原理
  •   这是一本很好的书,以前有听说这方面的东西,但是不是很系统,现在终于可以深入了解了
  •   比较难,适合windows fans,对linux没什么用
  •   做C++到一定层次以后,必读的书,可以让一名优秀的程序员更优秀。
  •   很基础的一本书,但是打好基础才能更深入的学习。
  •   语句很精炼、深入浅出、思路严谨,无论对于新手还是老手,都是不错的参考学习书籍
  •   一本不错的书 可以深入了解
  •   真的不错啊,推荐,值得看。把多年的经验做个梳理
  •   对于c++的深入学习有很大帮助,多谢作者!
  •   这是一个专家写的,当然值得一看了,非常期待~
  •   这本书虽然内容比较简单,但趣味性很强,比国内的书有趣。非常适合新手入门学C++。
  •   包装很好,发货速度快,内容丰富,开心
  •   虽然很好 但是很有难度 适合有一定C++和汇编语言水平的人看 我买得早了点
  •   值得推荐,经典教材
  •   这本书说真的真心不错,适合有一定基础的人去深究
  •   经典,一如继往的好。。。。。。
  •   书内容写得不错,适合有C++基础的人士阅读
  •   听人说是经典,就买了,书还没看。估计不错。
  •   买书只为支持钱老师,哈哈..........
  •   作为学生,钱老师的书一定要支持!看着书好像在听老师讲课一样~
  •   今天中午收到这本书,大概翻了下写的比较细,特适合初学者。
  •   作者很牛逼,内容也细致。推荐一看。
  •   同IDA一起买的,还没看,书的质量倒是不错
  •   正是我想要看的书,好好研读一下
  •   读书为辅,实际操作为主
  •   需要对C++语言有一定的了解,否则后面可能理解不了。
  •   正在仔细拜读~~~经典好书,必看~
  •   钱老的书一如往昔的经典啊!拜读ing!
  •   只看了目录,但是确实很经典!
  •   书是不错,不过入门者看了确实不是太懂,所以现在在学编程,唉,书是好,可是我没有能力消化.
  •   质量很好啊啊啊质量很好啊啊啊
  •   好,很好。实用
  •   纸质不是太好,没之前好,有点毛边,希望下次不能这样了。
  •   纸张,印刷都很好,讲的也很不错,可以作为c++进阶的书。
  •   文笔好,内容精~!~!大力支持。
  •   质量好 内容好 不错
  •   很好很喜欢,刚好是做活动的时候买的。价格也可以接受。比书店便宜多了
  •   纸张不是很好啊。内容不错
  •   好!很有启发性!
  •   还在研究中,
  •   C++研发人员可以看看
  •   最喜欢这一类书了
  •   刚拿到书,还来不及看啊,比较深奥,平时没这方面的积累,需要花点时间好好研究一番
  •   包装我还没拆,买了送人的,应该很不错吧。
  •   很好的书籍,给人指导方向
  •   这本书真的很不错哦~~~
  •   看了非常有帮助的一本书
  •   不错的一本书,正是现在需要的
  •   感觉有点薄,希望这本书的内容能让我受益
  •   很专业的一本书,现在正在看。
  •   很专业的工具书 收藏中~
  •   好书,受益很大,纸质也很不错
  •   看过了,深入浅出
  •   很不错的样子,物流很慢,非常慢。
  •   这次的物流很慢
  •   稍显过时,但不失为一本入门级的书。
  •   对于对门来说相当不错,快递很给力
  •   先收藏着,慢慢看。。
  •   快递给力,当当给力,剩下的就看自己看书给力不给力了。
  •   不错 很不错噢
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7