朱朱你堕落了 发表于 2024-9-12 20:03

求助软件解包问题

本帖最后由 朱朱你堕落了 于 2024-9-15 13:26 编辑

悬赏区坛友求助的一个软件问题:
https://www.52pojie.cn/thread-1963499-1-1.html

刚开始看别人说的很悬乎,下载后研究一下,基本了解了软件验证套路。
而我想问的非软件验证问题,而是关于解包的。

通过监控安装过程可以发现,软件在安装过程中向注册表项写入一段数据

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{8884600D-02FB-4944-8458-B49DBADBC532}
InstallDateTime键值是20位的十六进制,这个十六进制反正是个安装时间。

我现在想知道的是,这里面的十六进制到底代表什么,或是说这20位的十六进制是被如何转化后写入注册表的,最好的
办法就是解包了,看看源代码是如何写的,使用InnoExtractor解包(我也第一搞这个),发现安装脚本里面并没有
关于操作注册表的代码,那可能操作注册表的应该是写到了Inno Setup脚本的Code部分了吧,
我也是猜的,对Inno软件不熟悉,那么Code部分在哪里呢?

我的目的就是找出来把安装时间写入注册表的这段代码,我看看他到底是如何实现的。
另外请问,InnoExtractor解包出来的CompiledCode.bin这个是干什么用的?作用是啥.

https://www.z4a.net/images/2024/09/12/bin.png

软件地址:
https://www.123pan.com/s/YL29-K7TRh

HonDmOon 发表于 2024-9-12 20:03

本帖最后由 HonDmOon 于 2024-9-13 16:07 编辑

██████▓刮开有奖▓██████
{:17_1089:}

烟99 发表于 2024-9-12 20:20

这个我知道,想当年我也是玩InnoSetup玩出名堂的,CompiledCode是已经编译过的段脚本,它不能被还原成Delphi源码,只能反汇编

朱朱你堕落了 发表于 2024-9-12 20:32

烟99 发表于 2024-9-12 20:20
这个我知道,想当年我也是玩InnoSetup玩出名堂的,CompiledCode是已经编译过的段脚本,它不能被还原 ...

那如何反编译CompiledCode.bin呢?反汇编后和普通delphi程序反汇编效果那样?

烟99 发表于 2024-9-12 20:46

朱朱你堕落了 发表于 2024-9-12 20:32
那如何反编译CompiledCode.bin呢?反汇编后和普通delphi程序反汇编效果那样?

我记得InnoExtractor自带反汇编CompiledCode的工具,但那个是付费功能,免费的我也不清楚有什么,另外需要注意,有的InnoSetup是用的第三方基于软件源码开发的增强修改版,用那种编译器输出的安装包无法解包,应该是头部文件加密了

烟99 发表于 2024-9-12 20:50

一般注册表操作不在CompiledCode里,除非要进行一些比如带条件判断的那种比较复杂的操作,因为inno有自己的注册表操作机制,你看解包后的iss脚本里有没有Registry段,如果没有,那就是写入CompiledCode里了

HonDmOon 发表于 2024-9-13 08:31

本帖最后由 HonDmOon 于 2024-9-13 09:06 编辑

Inno Setup Decompiler


下载: github.com/dscharrer/innoextract/files/5507287/isdsetup.1.5.exe.zip
来源: github.com/dscharrer/innoextract/issues/106
NO TESTING

简单用了下,注意事项
1. ids只能解析 ids 自己解包出来的 “CompiledCode.bin”,InnoExtractor 解包出来的无法解析



朱朱你堕落了 发表于 2024-9-13 08:31

烟99 发表于 2024-9-12 20:50
一般注册表操作不在CompiledCode里,除非要进行一些比如带条件判断的那种比较复杂的操作,因为inno有自己的 ...

iss脚本里没有Registry段,如何反编译CompiledCode.bin,使用什么工具或方法?

HonDmOon 发表于 2024-9-13 09:00

本帖最后由 HonDmOon 于 2024-9-13 09:02 编辑

朱朱你堕落了 发表于 2024-9-13 08:31
iss脚本里没有Registry段,如何反编译CompiledCode.bin,使用什么工具或方法?
不同看了,通过脚本 install_script.iss,这个软件在安装后执行了如下操作

Filename: "{app}\xxxxx.exe"; Parameters: "/Install"; MinVersion: 0.0,6.0;

"xxxxx.exe / Install" 的操作就是写入安装时间,主要逻辑还是在 xxxxx.exe 中

复现方式
1.删除
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\xxx 注册表项
2. cmd 执行指令
"xxxxx.exe /Install"

朱朱你堕落了 发表于 2024-9-13 09:07

本帖最后由 朱朱你堕落了 于 2024-9-13 09:08 编辑

HonDmOon 发表于 2024-9-13 09:00
不同看了,通过脚本 install_script.iss,这个软件在安装后执行了如下操作

Filename: "{app}\xxx ...
大佬,我想不通的是,
https://www.z4a.net/images/2024/09/13/QQ.png

这个选项,我都没有勾选,相当于软件都没有运行,主程序(xxx.exe)怎么会操作注册表呢,不应该是安装脚本写注册表值吗?
页: [1] 2
查看完整版本: 求助软件解包问题