admin 发表于 2022-10-24 06:01:28

【变量替换】

例子代码
.版本 2

.子程序 _按钮4_被单击
.局部变量 关键数据, 文本型


' 此处省略大量的代码
关键数据 = “abcdef”' 这里的关键数据要求是变动的,比如取出某个网页的cookie等


' 下方代码需要得到关键数据才能运行



请求端
.版本 2

.子程序 _按钮4_被单击
.局部变量 关键数据, 文本型
.局部变量 关键数据_服务器, 文本型

' 此处省略大量的代码
关键数据 = “abcdef”' 这里的关键数据要求是变动的,比如取出某个网页的cookie等
关键数据_服务器 = 到文本 (网页_访问 (“文本接口地址”, 1, “” + 关键数据))


sxd.dll代码
.版本 2

.子程序 replace, 文本型, 公开
.参数 get数据, 文本型
.参数 post数据, 文本型
.参数 ip, 文本型
.参数 传递序号, 整数型
.局部变量 传入文本值, 文本型
.局部变量 返回文本值, 文本型

返回 (post数据)



修改之后的代码软件依赖的都是关键数据_服务器这个变量的值,而这个值是服务器返回的,关键数据这个变量的值是对的,但是后面的的代码不依赖这个变量
这种方式虽然简单,但是确可以难住相当多的破解者,关键数据的值是正确的,但是下方的代码无法使用,下方的代码使用的是关键数据_服务器这个变量,要想破解书香能想到的是两个方法

第1个是想办法让关键数据_服务器的结果等于关键数据(这种方法我们称为变量转向)
第2个是部署一台中间服务器,然后ip转向

从实用性来看,第2个方法成本上不可行,至于第1个方法倒可以,但是如果服务器返回的数据是加密的,而下方使用到的地方每一处都需要解密,那么破解难度就大大加强了

请求端
.版本 2

.子程序 _按钮4_被单击
.局部变量 关键数据, 文本型
.局部变量 关键数据_服务器, 文本型

' 此处省略大量的代码
关键数据 = “abcdef”' 这里的关键数据要求是变动的,比如取出某个网页的cookie等
关键数据_服务器 = 到文本 (网页_访问 (“文本接口地址”, 1, “” + 关键数据))
子程序1 (文本_解密 (关键数据_服务器, “666”))
子程序2 (文本_解密 (关键数据_服务器, “666”))


sxd.dll代码
.版本 2

.子程序 replace, 文本型, 公开
.参数 get数据, 文本型
.参数 post数据, 文本型
.参数 ip, 文本型
.参数 传递序号, 整数型
.局部变量 传入文本值, 文本型
.局部变量 返回文本值, 文本型

返回 (文本_加密 (post数据, 666))


houyuyu8788 发表于 2023-7-30 08:17:57

学习型学习
页: [1]
查看完整版本: 【变量替换】