《加密与解密》_OllyDbg调试器


前言

本次笔记内容来源于《加密与解密(第四版)》,实验工具可以从看雪论证的这个板块下找到。这本书是有前置知识,才能更好的看懂。例如汇编语言。推荐《汇编语言》王爽,这本书。


一、OllyDbg简介

OllyDbg简称"OD"。建议去吾爱**论坛下载插件多的OD。因为第一次做下面的实验的时候因为32位和64位不兼容的问题,郁闷了好久。

二、OllyDbg

1.界面

《加密与解密》_OllyDbg调试器

和常见的IDE界面类似。其中红色方框圈起来的是用于不同窗口切换,例如C是常用的反汇编面板窗口。
《加密与解密》_OllyDbg调试器
其实ESP寄存器存放的是栈指针,指向栈顶。可以注意到右下角的栈区显示了栈的值。EIP指向当前要执行的指令。
重要操作:
F8相当于单步调试,不跟进函数内部。
F7相当于单步调试,跟进函数内部。
设置断点

2.CrackMe实验

应该先会正向开发,才能实现逆向开发的。例如做这个实验之前你应该知道或者猜到windows API函数GetDlgItemText。否则断点打不对程序直接执行下来,是不能**。快捷键"Ctrl + G"搜索"GetDlgItemTextA",打断点。
具体的汇编语言分析,课本上描述的非常清楚。
找到判断核心。
《加密与解密》_OllyDbg调试器
修改操作
《加密与解密》_OllyDbg调试器
《加密与解密》_OllyDbg调试器
然后继续执行就可以**成功了。
《加密与解密》_OllyDbg调试器
生成**的.exe.其实就是把修改的汇编写入.exe文件。
《加密与解密》_OllyDbg调试器
《加密与解密》_OllyDbg调试器
就可以生成**的.exe文件。

总结

课本写的比较详细按照课本做就可以很顺利的完成。如果出现问题也不担心,很有可能是工具的原因。之前自己简单的看过王爽的《汇编语言》,但是好像还是远远不够。对于汇编语言的调用过程还不够熟悉。这本书的第四章,还有重点解释:函数,数据结构,控制语句,循环语句通过汇编语言是怎么实现的。