吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2636|回复: 100
收起左侧

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

  [复制链接]
yyhd 发表于 2022-11-24 10:43
本帖最后由 yyhd 于 2022-11-27 00:00 编辑

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


我们接着闲谈。

上一集,你应该基本清楚一个可执行文件(PE文件)是如何运行的。
简单归纳一下,就是

1、PE文件有特殊的结构,其数据是分区放置的,当PE文件执行的时候,操作系统把PE文件的数据对应映射到内存中不同的区域中(代码段、数据段、资源段等)。
2、PE文件运行的时候,操作系统根据PE文件结构,找到文件的main函数的位置(程序入口点,或叫OEP),然后等待用户操作。
3、用户对窗口软件(PE文件格式)进行操作的时候(比如鼠标左键点击按钮、输入文字、窗口变大变小、移动等),就发生了一个事件,然后把这个事件构造成为一个消息的结构体(比如鼠标左键按下的消息常量值是十六进制的201,还有鼠标的位置等内容)
看下图所示:


image.png


红色箭头是这个小程序的登录按钮。如果你用鼠标点了一下这个登录按钮,会发生什么呢?
看一下蓝色箭头指的位置。
这时,操作系统就会发送一个消息给这个小程序,通知它有用户点击了你的登录按钮,这个消息是一个结构体,其中的消息常量值是201。如果是其他操作,消息的常量值是不一样的数值。
4、操作系统中有一个消息中心,这个中心的功能就是监控各种窗口事件产生的消息,进行捕获和发送。
5、用户程序中有专门的消息接收和处理的函数,用于处理对自己的窗口发生的各类事件产生的消息(比如鼠标消息、键盘消息等)。
假设还是上面的小程序,那么当它接收到刚才的消息结构体,它就执行按钮事件的那一段代码。
image.png
image.png


这下应该更清楚了吧。
简言之,windows系统上的应用软件的运行机制是:事件驱动——消息传递——消息处理。


好了,我们继续进行。
如果我们同时打开两个应用软件,比如A和B,在电脑桌面上有两个不同的窗口。
你有没有想过以下两个问题?


第一个问题是如果我用OD分别分析A软件和B软件,是不是都有可能有401000这个地址上的数据,这两个数据是一样的吗?
我们都知道计算机的物理内存,也就是插在计算机的主板上的内存条是固定的,可能是8G、16G、32G或者64G的。
我们以前的课程说过,你运行一个应用程序,操作系统就会把这个应用程序的数据拷贝到内存里。那么如果你打开100个或者更多,那内存条上的数据不就满了吗?
其实,操作系统对内存的管理是有特殊的解决方法的。
因为是新人朋友,我们就不讲这么深入了,你就记得一条,在32位操作系统下,系统给每个应用程序分配的内存空间的大小是4G,这4G空间是公用的,操作系统会根据用户对不同软件的操作自动切换执行。
也就是说,这一刻401000处的数据是A程序的,下一刻这个地址上的数据可能是B程序的。
那么操作系统怎么分辨是哪个程序的数据呢?
是根据进程来区分的。
每个应用程序执行后,都会产生一个进程,进程就是这个应用程序在内存中的资源总和,每个进程都有不同的编号,叫做进程ID,根据进程ID就可以访问不同的数据和资源。
举个例子,我现在如果做一个植物大战僵尸的辅助,就是对这个游戏的阳光数量的地址写入99999,那么我们可以这么编程。
image.png
看红色箭头指的位置,只要我们知道这个游戏的进程ID,就可以在这个进程中的某个地址里读写数据。


第二个问题是操作系统如何知道用户操作了哪个窗口?
你可能会说,是不是根据不同窗口在电脑桌面上的位置来区分。
不是,那如果你移动窗口,窗口的位置变了,怎么办?
真实的情况是,操作系统会给当前运行的每个窗口分配一个窗口句柄,也就是窗口的一个编号,这个编号是独一无二的。
我们看下图:
image.png
红色箭头指的66716就是这个小软件里面的登录按钮(也是窗口)的窗口句柄。
窗口的所有操作都依赖于这个窗口句柄。
不同的窗口句柄,表明是不同的窗口。
如果你想做一个辅助工具,比如鼠标连点器,就是对登录这个按钮进行持续的点击,那么你就需要先获取这个登录按钮控件的窗口句柄。
image.png
如果你用易语言编程,就用这个函数就可以了,把窗口句柄填入。
我们再来简单总结下:
1、操作系统通过进程来区分不同的运行程序,进程ID是做辅助或者是注册机的前提,有了进程ID你就可以对这个进程中的内存地址进行读写操作,也就是可以修改数据。
2、操作系统通过窗口句柄来区分不同的程序窗口,所有的消息也是基于不同的窗口句柄来实现传递,有了窗口句柄你就可以对这个窗口进行操作,比如模拟点击按钮,或者模拟输入文字。


就先写到这里吧,希望能让大家对软件运行的内部有更清晰的理解。

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

免费评分

参与人数 69吾爱币 +71 热心值 +62 收起 理由
四月份 + 1 + 1 谢谢@Thanks!
woshiwangzheACE + 1 + 1 用心讨论,共获提升!
陈明炜 + 1 热心回复!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hiel + 1 + 1 我很赞同!
faith9527 + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
yp17792351859 + 1 + 1 谢谢@Thanks!
liqi1 + 1 + 1 谢谢@Thanks!
482567374 + 1 我很赞同!
lybijiasuo + 1 + 1 谢谢@Thanks!
zxinyun + 1 + 1 多谢分享基础知识!!!
wbzb + 1 + 1 热心回复!
七夕的乌鸦 + 1 渐入佳境了 ,希望快点更新(狗头)
mengfang1 + 1 + 1 我很赞同!
流泪的小白 + 1 + 1 热心回复!
a731062834 + 1 + 1 用心讨论,共获提升!
嚯嚯嚯000 + 1 + 1 我很赞同!
hkq666 + 1 谢谢@Thanks!
52PoJie20221111 + 1 + 1 我很赞同!
wangdanq + 1 + 1 谢谢@Thanks!
萌新与小白 + 1 + 1 热心回复!
huskysir13 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
snowcatflyer + 1 + 1 谢谢@Thanks!
mduim + 1 + 1 谢谢@Thanks!
某中二绅士 + 1 用心讨论,共获提升!
hx924923235 + 1 + 1 用心讨论,共获提升!
老虎爱吃素 + 1 + 1 谢谢@Thanks!
郑札 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Malevolence52 + 1 + 1 用心讨论,共获提升!
wuboxun + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
abszqd + 1 + 1 谢谢@Thanks!
SN0816 + 1 + 1 感谢大佬教学
yccyjie + 1 + 1 谢谢@Thanks!
jkl718293 + 1 + 1 谢谢@Thanks!
zzk19358590281 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zt185 + 1 + 1 通俗易懂!
RANY2021 + 1 + 1 谢谢@Thanks!
bullshit + 1 + 1 谢谢@Thanks!
lho + 1 谢谢@Thanks!
Issacclark1 + 1 谢谢@Thanks!
ClancyHD + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wanfon + 1 + 1 热心回复!
Gracie7 + 1 + 1 热心回复!
nexuslee + 1 + 1 很赞 很酷 虽然看了好几遍发现越来越看不懂了,还是在坚持看
52cavid + 1 + 1 我很赞同!
lxwaft + 2 + 1 谢谢@Thanks!
葫芦小金刚 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
leexjmx + 1 + 1 谢谢@Thanks!
lwl2005 + 1 + 1 热心回复!
MeiQiuCat + 1 谢谢@Thanks!
kof888 + 1 + 1 我很赞同!
bjxiaoyao + 2 + 1 谢谢@Thanks!
ses + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zuohaoda + 1 + 1 热心回复!
xzkr + 1 + 1 我很赞同!
wqg00 + 1 热心回复!
shujukr + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
NyaP + 1 + 1 用心讨论,共获提升!
NotTouchFish + 1 + 1 我很赞同!
liujun1111 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
rsice + 1 + 1 谢谢@Thanks!
cnsjj + 1 我很赞同!
wyhzxcwyh + 1 + 1 谢谢@Thanks!
wuaipojieyyds + 1 我很赞同!
NANJU + 1 + 1 谢谢@Thanks!
飘零星夜 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sgbyg + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
cyhcuichao + 1 + 1 谢谢@Thanks!

查看全部评分

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

gamma 发表于 2022-11-24 20:16
tyz1234 发表于 2022-11-24 11:27
一个exe编程软件,我用OD运行,我用它反编译程序时,所设置的消息断点在我点了反编译后都不能断下来,运 ...

“点了反编译”这句话怎么理解?
入口断点能断下来吗?
tyz1234 发表于 2022-11-24 11:27
yyhd 发表于 2022-11-24 11:13
你说的就是消息断点,也是破解软件时可以采用的一种方法

一个exe编程软件,我用OD运行,我用它反编译程序时,所设置的消息断点在我点了反编译后都不能断下来,运行一直进行。所以我想用句柄得到的这些数据来找断点,也不知道能不能实现
端木匆匆 发表于 2022-11-24 10:53
cyhcuichao 发表于 2022-11-24 10:55
简单易懂 谢谢
tdj 发表于 2022-11-24 11:03
很厉害,非常有用
935 发表于 2022-11-24 11:06
大佬辛苦   谢谢关照!
af8889 发表于 2022-11-24 11:07
很详细的教程,谢谢!!!!!
tyz1234 发表于 2022-11-24 11:07
本帖最后由 tyz1234 于 2022-11-24 11:09 编辑

大佬,能否根据这个窗口句柄给的信息在OD中找到点击这个按钮所在的断点位置?就像我点击登录,OD中立马就暂停在了点击登录时所用的断点位置
baiylai 发表于 2022-11-24 11:10
学习真难。。
NANJU 发表于 2022-11-24 11:11
初学者,感谢大佬分享,这个帖子帮我解答了困惑
wuaipojieyyds 发表于 2022-11-24 11:13
很赞感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2022-12-9 23:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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