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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 990|回复: 8
收起左侧

[求助] 求助分析别人的patch补丁是如何实现的?

[复制链接]
朱朱你堕落了 发表于 2023-9-27 07:33
很早之前从别处下载的,当时就有这个疑问了,现在用到了,求助各位大佬。

1
软件安装后本来是delphi的无壳程序,用了patch补丁后,主程序竟然加aspack壳了,而且看区段名称还变了。
这么神奇吗?patch补丁还能对程序patch的过程中加壳?是如何实现的?

2
软件关于里面的个人信息,即:注册给某人,是从注册表里读取的,也就是说,在patch过程中,补丁向注册表里应该是写入了个人信息的,或是说,patch过程中提前先写入个人信息,再启动软件,
这样软件就能读取到注册表里关于个人信息的键值,所以显示正常。问:补丁还有向注册表写入的功能?

3
这个是否是dup2制作的补丁?如果是的话,我用dup2复制实现,请问要如何操作?

软件:
https://www.123pan.com/s/YL29-Uu6Oh.html


暂时没CB了,用我之前两个一共700CB的悬赏贴来结贴吧。

https://www.52pojie.cn/thread-1833863-1-1.html
https://www.52pojie.cn/thread-1826301-1-1.html

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

云在天 发表于 2023-9-27 07:55

软件安装后本来是delphi的无壳程序,用了patch补丁后,主程序竟然加aspack壳了,而且看区段名称还变了。
这么神奇吗?patch补丁还能对程序patch的过程中加壳?是如何实现的?

先说加壳的问题,因为它用的不是真正意义上的Patch,而是替换文件实现破解,理论上Patch过程中可以对程序进行任何操作,就要看你怎么去写Patch这个程序了

软件关于里面的个人信息,即:注册给某人,是从注册表里读取的,也就是说,在patch过程中,补丁向注册表里应该是写入了个人信息的,或是说,patch过程中提前先写入个人信息,再启动软件,
这样软件就能读取到注册表里关于个人信息的键值,所以显示正常。问:补丁还有向注册表写入的功能?

就像之前说的,Patch实际上是一个exe,理论可以执行任何操作,像dup2也确实有写入注册表的功能,单纯看你给的例子,就是把编辑好的reg文件写入注册表,并没有其他操作。内容如下

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\FolderEncrypt]
"Enablefutula"=hex:c9,62,d7,65,3f,8f,e4,40
"LastSetModCon"=hex:c9,62,d7,65,3f,8f,e4,40
"RegDate"=hex:9a,b6,58,67,3f,8f,e4,40
"UserName"="Cracked By l0v3cr4ck"
"Rname"=""
"SoftRunTimes"=dword:00000001

这个是否是dup2制作的补丁?如果是的话,我用dup2复制实现,请问要如何操作?

据判断应该是dup2的补丁,复制就是增加两个模块,一个是额外文件模块,一个是注册表模块,把释放的加壳的exe和上面注册表内容导入就好了

点评

感谢总版分析,就是这样子的。 1 他这个补丁还是有问题的,情况如下: 运行patch补丁,点patch按钮,之后再运行目标主程序“FolderEncrypt.exe”,OK,这时程序是“已注册”状态。现在关闭掉软件,再运行程序,  详情 回复 发表于 2023-9-27 15:28
zxinyun 发表于 2023-9-27 08:16
云在天 发表于 2023-9-27 07:55
[md]>软件安装后本来是delphi的无壳程序,用了patch补丁后,主程序竟然加aspack壳了,而且看区段名称还变了 ...

总结一下:1、导入了注册表 2、替换了主程序。
boyving 发表于 2023-9-27 08:08
哈哈,还能这样结帖。。。

免费评分

参与人数 1热心值 +1 收起 理由
朱朱你堕落了 + 1 又没违规,问什么不能呢?否则CB浪费了,岂不可惜?哈哈。。。

查看全部评分

666888tzq 发表于 2023-9-27 12:45
1、应该是用加壳主程序替换了源程序文件;2、dup2补丁工具就支持导入注册表文件;3、你先要分析出patch数据,才能用dup2实现。
 楼主| 朱朱你堕落了 发表于 2023-9-27 15:28
本帖最后由 朱朱你堕落了 于 2023-9-27 15:38 编辑
云在天 发表于 2023-9-27 07:55
[md]>软件安装后本来是delphi的无壳程序,用了patch补丁后,主程序竟然加aspack壳了,而且看区段名称还变了 ...

感谢总版分析,就是这样子的。

1
他这个补丁还是有问题的,情况如下:
运行patch补丁,点patch按钮,之后再运行目标主程序“FolderEncrypt.exe”,OK,这时程序是“已注册”状态。现在关闭掉软件,再运行程序,
发现还是“未注册”状态,只能关闭掉,再次重新运行patch补丁,再点patch按钮,再运行FolderEncrypt.exe。

也就是说,每次都要先运行patch补丁,补丁后再运行软件才是“已注册”。按理说,应该是只在第一次patch成功后,之后只要运行程序就行了,
以后都不需要用到patch补丁了。所以我感觉这很不合理,也不合逻辑,什么原因引起的?有解决方案吗?

2
关于注册表的问题,就以此软件为例子,软件的注册信息是从注册表里读取的,这就需要我先向注册表里写入
一些数据,再启动软件。编辑好的reg文件直接导入也行,但是reg文件太明显了,而且还要手动双击一下导入,
显得不和谐还麻烦,有啥好办法解决这个问题,使用本例中dup2的注册表写入功能?而且很明显,只要第一次
写入注册表成功就行,后面根本就用不到dup2生成的补丁。有没有别的方案?
wgz001 发表于 2023-9-27 15:58
我只会文件对比,补丁加密了我就看不懂了
cndml 发表于 2023-9-28 09:39
本帖最后由 cndml 于 2023-9-28 09:43 编辑

软件破解的有问题,原因是他的破解实际只修改了一处跳转,跳转地址jne改成je,这个跳转前面判断的是Rname是否为空。初始破解写入注册表里Rname键值为空的时候,会正确写入注册标志位。程序运行一次后,会写入Rname值,第二次运行时由于Rname值不为空,修改后的判断会走错误流程,自然显示未注册。正确的破解方式是把前面的标志位sete bl,改成move bl,1 ,紧接的判断语句改成jmp,注册表信息里的用户名,注册时间不写入也行,只不过注册时间为0,显示1899/12/31,应该不影响使用。具体代码地址如下:
[Asm] 纯文本查看 复制代码
mov edx,dword ptr ss:[ebp-10]
pop eax
call <folderencrypt0.sub_407BE4>
sete bl
cmp dword ptr ss:[ebp-4],0
jne folderencrypt0.75234A
xor ebx,ebx
xor eax,eax
pop edx
pop ecx
pop ecx


冥界3大法王 发表于 2023-9-30 16:31
wgz001 发表于 2023-9-27 15:58
我只会文件对比,补丁加密了我就看不懂了

那我比你还多会一招内存对比
那我把资源修改下,区块删除下。。。岂不变化大了还是对比不了?
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-29 05:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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