吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15666|回复: 528
收起左侧

[原创] 闲谈集——破解基础思维之一

    [复制链接]
yyhd 发表于 2022-11-19 12:12
本帖最后由 yyhd 于 2022-11-22 09:18 编辑

之所以命名为闲谈集,就是因为所讲内容均为闲谈,没有技术含量,也不精准,或许还错误百出,
但唯一的好处就是通俗易懂,便于新人们理解。


今天有点时间,就啰嗦几句,对象仍然是破解的新人朋友。
这次只务虚。没有目标,想到哪就谈到哪。
对破解感兴趣的新人朋友,在学习过程中会有很多困惑,进步也很慢。
其原因主要在于编程和破解基础知识的欠缺,思路不清晰。
下面我就和大家聊聊,希望聊完后能让你有所收获。


一、编程基础


我这里不谈具体的编程语言,只谈基本认识。
所谓编程,就是你编写一段代码,让机器执行。比如你想让屏幕上出现一个“Hello World”。
要完成这样一个工作,必须要有几个条件。
第一、你要把想做的工作写出来,你可以打开一个记事本,在上面写上“屏幕的正中间位置出现Hello World这句话”,这就是编程。
你想过没有,你写的中文的句子,你自己很清楚要做什么,但计算机能不能看懂?
所谓计算机能不能看懂,就是说计算机内部的CPU(大脑)能不能看懂并执行。
所以,就有了一些NB的人自行开发了一套语言,目的是让计算机能够看懂。
因为计算机首先是外国人发明的,国外发展的比国内快,而且主要是英语体系,所以创造的一些编程语言主要是英文的。
比如BASIC语言、C语言、C++语言、VB、DELPHI、Python等。国内也有NB的人后来开发了易语言,是纯中文的。
不管是什么编程语言,其目的就是编写出一段能够让计算机看懂的代码。
所以,所谓学编程就是要学某一套语言体系,就像大家学英文一样,你要学会26个字母,要学会一些常用的有意义的单词,要学会一些常用的语句,还要学会一些语法。
那么大家可能会问,学什么编程语言好呢?难学吗?
我个人认为,如果你不想今后从事编程工作,只是想学习一下软件破解,
那么,你需要学C语言、C++、易语言、汇编。
你可能听到就头大了,这么多语言都学习,那需要多少时间,人都学死了。
呵呵,
我说的学习是指你能看懂别人写的代码即可。
就像我们的母语中文,我们不是作家,没有必要文学素养多高,也不必追求华丽的辞藻,
我们只要能看懂别人写的文章的主要意思即可。
比如很多小说开头写到“夜很黑,伸手不见五指,四下死一般的沉寂,只听到远处传来咚咚的走路声.......”,
那么你就懂了,前面的文字是环境描写,目的是烘托气氛,走路的可能是要出场的人物,是需要关注的对象。
这就叫读懂,我说的你懂编程就是这个意思,这样是不是就容易很多了。
我现在举一个C++语言编程的例子,你看一下:


#include <iostream>
using namespace std;
int main()
{   cout << "Hello, world!" << endl;
    return 0;
}

以上的这段代码,执行以后能够在屏幕上出现“Hello,world!”这段文字。
那你怎么去读懂呢?
其实很简单。
#include <iostream>  这句代码是C++语言编程时在第一行通用的句子,意思是包含一些头文件。
using namespace std;  这句代码是声明命名空间。
以上的两句基本都是通用的,你读的时候可以无视它。
int main( )
{


}
这个部分才是每个程序最需要关注的地方。
main在英文中是主要的意思,所以main下面大括号里面的代码才是主要的部分。
{    cout << "Hello, world!" << endl;   
     return 0;
}
你看,在大括号里有两行代码。
cout << "Hello, world!" << endl;这段代码就是让计算机在屏幕上输出文字。cout是C++语言定义好的关键字,意思就是把<<后面的文字在屏幕上输出。endl也是定义好的关键字,是指在屏幕上输出文字后进行换行。
return 0;这句代码是结束的意思,返回值为0。
你现在在看整段代码,是不是就很容易看懂了。你主要看main后面大括号里的内容,然后读懂每句里面的关键字的意思就可以了,关键字是你要提前学习的,好在每个编程语言中的关键字数量都不多,常用的也就几十个。


你还需要了解的是。
你刚才看到的C++语言编写的代码,计算机其实也是读不懂的。因为计算机只认识0和1。
所以,大家学习的编程语言叫做高级语言,并不是计算机能识别的语言。
那么就需要对高级语言进行翻译,翻译成不同的0和1的组合。
这个工作不需要我们来做,交给一些NB的人做好的编译工具。
比如VC、易语言,这些软件的功能都包括了两个方面,一个是支持高级语言的输入、识别,一个是对高级语言编写的代码进行翻译,或者叫编译。
一般来说,先把这些高级语言编译成汇编代码,然后再把汇编代码编译成很多的0和1。
所以,汇编语言是低级语言,比C语言和易语言更接近计算机的底层逻辑。
我们学破解,用OD这个工具看到的就是汇编代码。OD这个工具的作用就是可以把软件的汇编语言识别出来,因为是把0和1反向翻译成汇编语言,所以OD这个工具也叫做反汇编工具。
我们学破解,就是在反汇编的基础上通过对汇编代码的解读来了解软件的执行流程、验证流程、关键的代码位置。


二、内存和内存地址的意义


我想先问你,一段程序由计算机去执行,计算机会怎么做呢?
我们编写的程序代码在计算机眼里也是由不同的0和1的组合,都是数据,对吧。
另外你要先记住一点,所有的数据在计算机执行的时候都是在内存里。
内存你可以理解就是计算机对数据的存放和加工车间。
计算机会把这段程序的代码从硬盘上先拷贝到计算机的内存里,放到内存的哪里呢?
为了方便读取数据,计算机会把内存提前进行分区,看我用OD打开的一个软件:


image.png
text叫做代码区,里面放的就是这个软件的代码数据。
data叫做数据区,里面放的是这个软件在运行过程中使用的变量数据
rsrc叫做资源区,里面放的是这个软件的一些资源数据,如软件的图标、菜单等数据。
所以我们破解时分析代码,就要在代码区进行查看和分析。
你看上图的代码区的起始地址是401000,你这下就明白我们为什么搜索字符串的时候往往用先转到401000处再去搜索了吧。
我们再来进一步理解内存。
内存是用来存放数据的一块空间,对吧,就像是一块空地。
我们软件执行前,人为地把这块空地按照功能划分为住宅区(代码区)、商业区(数据区)、风景区(资源区)等。
那么,在住宅区内是不是还要标上楼号、房号等,我们统称为地址,否则你想找一个住家,该怎么找?
所以,为了便于管理数据,我们把内存进行了编号,按照一个字节(8个二进制数据)的大小做为一个地址。比如401000就是一个内存地址,这个地址里可以存放8个1。
这样一来,想找某个数据,就可以通过找到这个数据所在的地址就可以了。
我们再来看OD。
image.png


0054A058这个地址起始处开始存放call kernel32.GetVersion 这段代码数据,因为这段数据占用了6个字节,所以一直存到0054A05D这个位置,从0054A05E开始存放下一段代码数据。
明白了吗?
还有一个需要你明白的是。
代码区的数据在软件执行过程中是不变的,因为是已经写好的代码。
数据区的数据很多是可变的,会有很多软件执行过程中产生的中间数据和执行结果。
这些对于我们破解来说有什么意义呢?
我们破解主要修改的是代码区的数据,或者说是修改人家已经写好的代码,比如某个地址上的原汇编代码是jnz,你把它修改成jmp,你就修改了这个软件的源程序的执行流程。
所以,破解学什么?就是学如何快速有效地找到关键代码的地址。
那么修改数据区有意义吗?
对于破解而言,意义不大,因为数据区往往是中间数据或者叫临时数据,软件关闭后这些数据都没有了,软件的代码还是没有变。
但是,修改数据区对于做游戏外挂是很有意义的。
比如一个枪战游戏,一把枪限定有10颗子弹,子弹的颗数是存放在数据区中的一个地址上的,比如你已经打了9枪,那么这个地址上存放的就是1,。
在玩游戏的过程中,如果你把内存地址上这个1改成10或者100,是不是就NB了,这就是内存挂的原理。
就先写到这吧,有时间再写。


如果您觉得确实有帮助,请给支持,我会继续努力写下去,谢谢!

点评

讲解通俗易懂,深入浅出,楼主,给您点赞  发表于 2022-11-19 13:07

免费评分

参与人数 359威望 +1 吾爱币 +353 热心值 +326 收起 理由
贡献成就未来 + 1 我很赞同!
wangdong66yd + 1 + 1 谢谢@Thanks!
拖mast + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
weylon + 1 + 1 谢谢@Thanks!
2407520627 + 1 + 1 热心回复!
guyuehu + 1 + 1 很精彩
zlb3577 + 1 + 1 谢谢@Thanks!
lihe + 1 + 1 谢谢@Thanks!
byr842355865 + 1 + 1 热心回复!
czyaps + 1 + 1 谢谢@Thanks!
wyt521 + 1 + 1 谢谢@Thanks!
tiantangmudi + 1 谢谢@Thanks!
潘佳乐 + 1 + 1 用心讨论,共获提升!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
haler.zhang + 1 + 1 我很赞同!
Herculee + 1 + 1 热心回复!
yp17792351859 + 1 + 1 用心讨论,共获提升!
Devin27 + 1 + 1 谢谢@Thanks!
SN0816 + 1 + 1 用心讨论,共获提升!
hopeallen + 1 谢谢@Thanks!
zzfnuaa + 1 谢谢@Thanks!
aikexue + 1 + 1 用心讨论,共获提升!
lqbing + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
gobs + 1 我很赞同!
voa258 + 1 + 1 谢谢@Thanks!
wang17602476495 + 1 + 1 我很赞同!
河东奇 + 1 + 1 我很赞同!
Alexvictor + 1 热心回复!
慢慢走,欣赏啊 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
fycdl + 1 我很赞同!
wuweide + 1 + 1 谢谢@Thanks!
sangshi + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lhh10333 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sxf_0328 + 1 + 1 给别人一碗水,自己必须有一桶水!楼主厉害
七夕的乌鸦 + 1 + 1 大佬,你咋跟写小说似的,还得催更啊。。。
Huu + 1 + 1 我很赞同!
凌天羽 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
tdj + 1 + 1 热心回复!
zjcasdfghjkl + 1 + 1 用心讨论,共获提升!
csw1998 + 1 + 1 用心讨论,共获提升!
zztoozzt + 1 我很赞同!
taiw + 1 + 1 我很赞同!
chenqi + 1 + 1 谢谢@Thanks!
bxyhy + 1 + 1 谢谢@Thanks!
barhma + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fulegedian + 1 + 1 用心讨论,共获提升!
a2604273891 + 1 我很赞同!
SeasonL + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
goco + 1 + 1 谢谢@Thanks!
yxpp + 1 谢谢@Thanks!
hiel + 1 + 1 谢谢@Thanks!
馍馍 + 1 + 1 我很赞同!
iveryjump + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
哥哥的肥皂 + 1 + 1 新手福音,感谢大佬讲解,热心奉上。
Listen_sen + 1 + 1 用心讨论,共获提升!
dhdajun + 1 + 1 热心回复!
qq001203 + 1 + 1 谢谢@Thanks!
laoxiao + 1 + 1 谢谢@Thanks!
一只老高 + 1 + 1 我很赞同!
月亮很亮 + 1 用心讨论,共获提升!
louchen94 + 1 + 1 我很赞同!
tlc123 + 1 + 1 用心讨论,共获提升!
zhaoxin888 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yuridexiaoyu + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
FengKunArt + 1 + 1 我很赞同!
aoQAQ + 1 + 1 谢谢@Thanks!
PonyFor + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
未来人类 + 1 谢谢@Thanks!
叶樱枫 + 1 + 1 谢谢@Thanks!
huahuali + 1 + 1 谢谢@Thanks!
sxs92108 + 1 + 1 谢谢@Thanks!
三千里地快哉风 + 1 + 1 谢谢@Thanks!
RANY2021 + 1 + 1 谢谢@Thanks!
bullshit + 1 + 1 谢谢@Thanks!
人间值得 + 1 + 1 我很赞同!
18559522951 + 1 热心回复!
跑了一下午 + 1 + 1 用心讨论,共获提升!
太阳の吻 + 1 浅显易懂,谢谢前辈指点!
默敝诩 + 1 + 1 感谢前辈指点
seeyoubug + 1 + 1 我很赞同!
chenchen_82482 + 1 谢谢@Thanks!
笑青苍 + 1 + 1 用心讨论,共获提升!
xiqimu + 1 + 1 我很赞同!
知行合一1979 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
联盟少侠 + 2 + 1 需要更多这样优质的内容
Chance_zbc + 1 用心讨论,共获提升!
luckystar312 + 1 + 1 我很赞同!
leexjmx + 1 + 1 谢谢@Thanks!
ClancyHD + 1 我很赞同!
guoxiujing + 1 + 1 想要学习它,首先要了解它,太好了
星Staryear + 1 + 1 谢谢@Thanks!
443698469 + 1 + 1 我很赞同!
浮梦丶天涯 + 1 + 1 写的浅显易懂,体现楼主功力深厚。赞
wowe + 1 + 1 通俗易懂,楼主NB
zzc0235 + 1 + 1 谢谢@Thanks!
GoStraight + 2 + 1 热心回复!
HOD + 1 + 1 用心讨论,共获提升!
xyl52p + 1 感谢解惑!
wyhzxcwyh + 1 + 1 谢谢@Thanks!
帽子杨小三 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

寂痕 发表于 2022-11-21 10:31
对于你们初学者来说可能觉得刚刚好,但对于我来说,不仅刚刚好,甚至还认真做好了笔记
3.png
2.png
1.png

免费评分

参与人数 2吾爱币 +2 收起 理由
七夕的乌鸦 + 1 用笔写在纸上加深记忆,比看十遍都记忆深刻
xyl52p + 1 很认真,值得吾辈学习。

查看全部评分

X5ZJ 发表于 2022-11-19 14:14
xjyaowj 发表于 2022-11-19 12:24
hxw555 发表于 2022-11-19 12:32
谢谢老师
pp775852100a 发表于 2022-11-19 12:32
很好的讲解,
andaytom 发表于 2022-11-19 12:33
谢谢老师,真是启蒙作品啊
(ˉ(∞)ˉ)zZ 发表于 2022-11-19 12:40
一步步讲些。学习了。期望后续。
dadaliya 发表于 2022-11-19 12:45
讲得很好,感谢大佬分享
will52089 发表于 2022-11-19 12:53
谢谢分享,一路学下来,对新人很友好。
头像被屏蔽
tyz1234 发表于 2022-11-19 12:55
提示: 作者被禁止或删除 内容自动屏蔽
不知道改成啥 发表于 2022-11-19 12:56
证明我来过了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-13 14:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表