《逆向工程核心原理》读后感

11月22日 看完了第一部分,虽然是翻译的,但语言非常流畅,读起来很舒服。有了之前看过的那些书的基础,这一部分看得非常快,而且感觉作者设置的学习曲线比较平缓,知识屏蔽也比较到位,有一种在看王爽汇编语言的感觉。

11月23日 看完第13章“PE格式”,这是我第3次看PE的内容,之前分别是《程序员的自我修养》《加密与解密》,我发现《程序员的自我修养》同本书一样也强调通过自己写一个PE格式解析器来加强对PE头的理解。因此后续应当先写个简易版本的程序来解读PE,确认自己真的掌握了再往下阅读。

11月25日 看完了第二部分,初步用工具查看了一下PE文件,直观感觉了一下RAV与文件偏移的换算。大体是看RVA属于哪一节,如果比最小一个节的VA还小,则直接与文件偏移相同。知道在哪个节后,用节的偏移baseRAV减去节对应的文件偏移,得到 k,然后 RVA-k = 文件偏移。这里有2个名词的缩写正好一样,需要注意:节头部的VA,其实这是头部的RVA。并不是 baseOffset + RVA = VA 的这一个。

后面又看了UPX和UPack的内容,感觉脱壳本身还是很讲究经验与汇编功底的。

11月26日 看完第25章 这几章的内容都是DLL的注入,感觉看了这个都不用再去看Win编程圣经的书了。书中分别介绍了钩子、创建远程线程、注册表、直接修改PE这四种DLL的注入。另外DLL的卸载感觉比注入还麻烦一些。

11月28日 看完了代码注入的章节。感觉这些不是“破解”范畴的内容,更符合打补丁的需要。不过本书的目标也不是为了破解这种灰色内容,而是漏洞分析、修复、功能增强等。书中将汇编注入到程序中是比较风骚的操作,果然是越底层能玩的花样越多,又有谁能想到以Call方法来入栈参数呢。

11月29日 看完第44章。这些章节都是以注入为基础,讲解了各种钩子技术,并说明了钩子应当如何调试。看了这些才知道隐藏进程是如何实现的,不然以前用OD时插件时,知其然,不然其所以然。后面还讲解了一些64位的知识,包括Wow64是个什么东西,这作者写书确实心细。

11月30日 看完第48章 这里的内容主要是讲TEP、TIB、SEH、PEB等内容,以前这些陌生的术语,终于能明白是怎么一回事,另外还知道了FS[0x030]到底是要做什么,之前逆向一个Delphi程序时老是见到这个FS段

12月1日 看完第52章动态反调试,后面的高级反调试及随后的第八部分(调试练习)都是比较难的内容,第49章讲IA32汇编指令也跳过没阅读。不管怎么样,总算是读完了一遍。后面找靶场练习看看这段时间的学习成果。

在结束语中,作者用围棋与象棋来对比开发与逆向,认为逆向比较讲究套路。其中还说到计算机在围棋领域下不过人类,因为人类有创意(2012年书)。可惜的是,没多久AlphaGo横空出世,天才也下不过计算机了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章