mzbtdwd 发表于 2021-4-1 21:43

2021新手门外汉,学习破解的笔记3

本帖最后由 mzbtdwd 于 2021-4-1 21:45 编辑

2021学破解的笔记和心得3
此贴为本人学习破解过程中遇到的困惑和解决办法的记录,作为学习破解的课堂笔记和心得,大神/大佬请直接跳过,如有叨扰还请见谅。
写在前面的废话:
(传送门)——接>>>>>>2021学破解的笔记2<<<<<<——
在笔记1&笔记2发出后,我收到了很多的回贴,在这里集中跟大家说句感谢,谢谢大家的支持和鼓励,你的支持就是我最大的动力,引用大神的的一句话:兴趣便是最好的入门老师。我认为,如果你兴正浓,不妨去找本武林秘籍,学着前辈的样子玩玩试试看,我们都是新手,不必非要自创武功,另辟蹊径。

   你是不是逛了很多帖子都在告诉你,学习破解需要去学PE结构、汇编语言、C语言的时候,那你有没有想过自己只是想玩破解,又不是想要去敲代码搞编程,为啥要去学那么多枯燥的代码呢?就好比你想玩一款游戏,你一定不会去了解这个游戏是怎么写出来的吧,因为你的重点/兴趣是“玩游戏”,而不是去搞明白这款游戏是怎么做出来的,如果你轻而易举就学会了那上百人团队开发的游戏,那别人岂不是要失业了?同理我们需要抱着“玩破解”得心态,才不会被那些各种代码束缚,除非你真的想当职业选手。


↓↓↓
本次笔记的懒人目录
1.学OD前需要了解的事
2.OD界面及功能区
3.OD操作快捷键
1.学OD前需要了解的事
上节说到OD全称为Ollydbg,是一种分析程序代码,是我们破解者的主要武器。
当然不只有OD能够进行分析程序代码,还有其他工具,比如静态分析工具IDA,x64dbg、DTdebug等等。

   这里用浏览器举个例子,我知道的浏览器有这些都能满足我上网的需求,但是我用的趁手的还是chorme ,因为的原因很多,但是最主要还是它可以用插件,这些插件能大大提高我的效率。

   同样的分析代码的软件都能进行分析代码,主要就在于插件和脚本的不同,我们用的吾爱大神出品的OD中增加了很多插件,这些插件让OD的功能更强大,方便我们学习破解,而不用分心区学习插件和脚本,目前这款吾爱OD中的插件足够我们新手用了。

   在介绍OD之前,需要先理解一个矛盾,记得我在笔记1中提到,破解的过程就类似现实破解房子锁的过程,就像我们目的是破解,软件开发者的目的是保护,相互较劲,你强我要比你还强才行,这就是矛盾的。
   但正是因为一破一护相互博弈,这个领域才会不断发展。所以在学破解前要做个心理建设,以后遇到破解不了的软件不要怀疑人生,不是你比别人笨,而是别人的技术在你之上,或者别人掌握着更新的技能而你不知道。
2.OD界面及功能区
按照笔记2中的介绍,把Ollydbg打开后,直接用鼠标拖拽要破解的软件进去就可以了(OD界面如下图)

这个界面大致分为:工具区、代码区、信息区、数据区、寄存器区、堆栈区6个区。
ü工具区——操作命令
    OD最上面的那一排就是工具区(如下图在这里),几乎我们在OD破解的所有命令都能到这里面找得到,包括我后面要讲的快捷键命名也都能在工具区找到。

ü代码区——分析代码
OD工具区下面左边区域(如下图在这里),这里能够显示出你要破解的程序代码,这个区域是用来分析代码的区域。这个里面包括有:代码地址、汇编代码、代码注释等内容。

   代码地址分为大地址和小地址,我们这里引入一个概念,系统领空和程序领空,系统领空是计算机的操作系统提供的固定的子程序,比如一些输入框、按钮等等,这个子程序的代码是微软事先就写好了的,程序员要用直接调用就可以了,程序领空(自写代码)是程序员自写代码,我们“破解只需要关注程序员自写代码”。

             那怎么区分系统领空还是程序(自写代码)领空呢?主要根据代码地址和窗口头部结合判断(如上图)。如果你看到代码地址是大地址76开头的(例如:76E8ED09),而且头部显示为user,代表你此时在系统领空。而如果你看到你的代码地址是小地址004开头的(例如:0045FBD1),而且头部显示为你要破解的软件名称,表示你此次在程序(自写代码)领空,ALT+F9是系统领空返回到程序领空(自写代码)的快捷键。

代码区显示的代码是程序的汇编代码而不是源代码:
(1)汇编是编程的一种,常用的编程语言有:C、VC、VB、DELPHI、JAVA、PHTHON、汇编、易语言等等。


(2)源代码,是指程序员编写程序时用的代码,我可以用C++\VB\Java编写小游戏程序,这些编写的代码就是源代码(参考上图理解)。
ü信息区——了解信息
   OD代码区正下方就是信息区,这个区是存放信息用的,有时候破解的关键字符串也会在这里显示,如下图,代码区有“登录失败”的字符串,信息区里也有显示。
ü数据区——查看/了解数据;
   OD的数据区在界面左下角的框框里,如下图,它里面包括数据地址、数据等内容(如下图)

ü寄存器区——查看寄存器的值
   寄存器是个啥呢?你可以把它想想成你的书包(或者衣服口袋),我们会有很多东西,像是洗衣机、电视、冰箱啥的,我们一般都是放在家里,只有常用的像手机、钱包、钥匙等才会放到书包里(或口袋里)随身携带。而计算机也是一样的,寄存器就像是一个临时的,存储和读取速度快的“口袋/书包”,是内存的一部分,是为了方便电脑快速读取和计算数据存储空间。在汇编语言中EAX,ECX,EBX,EDX等八个首字母是E的都叫做寄存器。

ü堆栈区——查看CALL的参数、变量和返回值。
       OD中堆栈区位置如下图所示,主要是用来查看子程序CALL的参数、变量和返回值的,堆栈也是内存的一部分,它与寄存器不同的是,堆栈总是和子程序CALL相关联,堆栈里面存放的数据有:1.存放调用某个CALL下面一行代码的地址;2.存放CALL的参数;3.存放着CALL在运行过程中的变量值。
   啥是CALL?CALL是汇编语言中的一个子程序调用代码,这里我还是用一个例子来说明,如果需要计算100组X、Y、Z数的加减乘除你打算怎么做呢?最佳答案是把加减乘除做成子程序,直接调用最快(如下图),调用的这个就是子程序,CALL就是子程序调用指令。

3.OD操作快捷键
   了解完OD的界面和功能之后,那OD到底是怎么用的呢?我之前有提到过,OD所有命令都可以在工具区找到包括它操作中的快捷键(如下图)。

这里我整理有常用的快捷键:


   了解完了这些常用命令和快捷键了之后,建议用笔记2中的实例导入程序后试一试每个功能,感受一下操作OD的乐趣,看篇幅今天内容已经不少了,那就先到这里吧。

前面笔记传送门:
>>>>>>2021学破解的笔记1<<<<<<
>>>>>>2021学破解的笔记2<<<<<<
>>>>>>2021学破解的笔记3<<<<<<


——————小尾巴——————
      我只是新手门外汉一枚,刚接触破解在学习的过程中,我发现如果仅仅只是去看大神分享的帖子,然后实际去操作还是会遇到很多的问题,所以我会查很多资料来解决问题,但是知识点多了就脑子就凌乱了,所以我想通过写笔记和心得来鞭策自己,把冗杂&烦乱的知识点整合一下,希望我走过的坑不再是你碰到的坑,也希望能够帮到想学破解的朋友,共同探讨学习。

mzbtdwd 发表于 2021-4-1 21:58

麮彧繇 发表于 2021-4-1 21:53
就喜欢这种小白的讲解,对新手很友好

是的,我刚开始学的时候走了很多弯路,因为很多大神已过“新手村”已经忘记了,最初接触时的感觉了,所以讲解的东西都比较难,这些是我走过的弯路,所以我分享笔记,就是不想让我走过的路还被更多人走

nmy124 发表于 2021-4-1 22:31

笔记详细,是初学者的福音,基础差慢慢来,继续学习

灶心土 发表于 2021-4-1 21:52

我也开始学习学习

麮彧繇 发表于 2021-4-1 21:53

就喜欢这种小白的讲解,对新手很友好

mzbtdwd 发表于 2021-4-1 22:00

灶心土 发表于 2021-4-1 21:52
我也开始学习学习

我也才刚刚学,分享的东西比较简单,希望能帮到你,嘿嘿

nanaqilin 发表于 2021-4-1 22:00

Linux程序用这个能破解吗?

mzbtdwd 发表于 2021-4-1 22:02

nanaqilin 发表于 2021-4-1 22:00
Linux程序用这个能破解吗?

我现在的操作系统是Windows,我不清楚Linux

C哥888 发表于 2021-4-1 22:45

使用心得整理非常到位,新手跟着你不是大神都离大神级别不远了,加油!也为你说的这段话{:1_893:}——这些是我走过的弯路,所以我分享笔记,就是不想让我走过的路还被更多人走{:1_921:}

lx771602764 发表于 2021-4-1 23:30

学习到了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 2021新手门外汉,学习破解的笔记3