找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
招租中
查看: 56|回复: 0

lua脚本加密与解密。包括:luaR、ssulua、DZSH算法

[复制链接]

222

主题

4

回帖

68

积分

版主

精华
0
积分
68
T豆
805
听众
1
热心值
0
违规
0
发表于 4 天前 | 显示全部楼层 |阅读模式

购买资源前注意看清简介和图片,资源失效请点下面【网盘失效反馈】,资源问题点页底右下角【举报】


前言:

在GG修改器,除了修改数据,精华就应该算是运行lua脚本了。

但是通常的lua脚本的编写者,都会把自己的脚本进行加密。

加密这种事情,交给软件就可以了,最没有成就感,还是解密让人会有阵阵快感。

这篇文章就简单来记录一下,自己遇到 lua脚本DZSH加密算法的解密过程。

推荐GG修改器与lua脚本学习地方:B站,自己搜索视频学习。

一、lua脚本加密
通常lua脚本,都会有3种加密方式,luaR、ssulua、DZSH算法加密。

加密过程,基本都是软件加密,这里就不多说了。自己百度,下载工具加密即可。

二、lua脚本解密
我通常碰到的lua加密脚本基本都是:luaR、ssulua、DZSH算法加密。其中:

luaR 解密:网上有很多,用java 即可就行解密。这里不多做陈述。百度即可解决。有时间后续会进行详细补充。
ssulua解密:ssulua加密也是相当简单。网上有很多解密的APP,下载,即可搞定。难度也不高。
DZSH算法解密:这里主要说一下DZSH算法加密的lua文件,因为这种解密方法,在网上并不容易找到。还需要自己多研究。
三、lua脚本DZSH算法的认识
要进行 lua脚本DZSH算法的解密,那就得先了解,DZSH 加密过的lua脚本长什么样?找到标识码,这样才能对症下药。

如果你打开,lua脚本文件,长以下这样,那基本就是 被 DZSH 加密过。我就不上图了,直接贴代码。

  1. function Decryption(jian,Text)

  2.   return (Text:gsub('..', function (jian)

  3.     return string.char((tonumber(jian,16))%256)

  4.   end))

  5. end

  6. --  Decryption()函数中 667开头我做了省略,大概有上万个。特别长。
  7. local jian = Decryption('DZSH','667...............................n')

  8. local dzsh= load(jian)

  9. load(dzsh)
复制代码


这里有个番外,我简单说一下。避免大家踩坑。

网上,大多数教程,都是让改,最后的两个 dzsh ,改成大写。然后把最后一行的 load,改成 print 来运行脚本。就能解密。

反正我试了,是不行,因为 DZSH算法 它会加密很多次。一次的估计很少。

四、解密开始(双端):
lua脚本 DZSH算法 的解密。思路其实很简单,在手机,电脑都可进行。这篇文章都会简单进行说明。

1、手机端
手机端解密脚本,需要 MT管理器。这个就比较坑。听说会员很贵。或许有人能用的上。附上:每款MT管理器下载地址

别人给我推荐了 另一款 安卓逆向神器NP管理器。我用了其实也并不好用。停卡的。

MT管理器破解-步骤开始:
第一步:用MT管理器,先在要操作的脚本的目录新建一个文件,有没有后缀不重要。先放着。
第二步:打开加密的脚本。复制 Decryption函数的绿色部分。这一堆绿色代码,就是DZSH加密的核心部分,其他的都是混淆视听的。如下:
绿色标注部分:local jian = Decryption('DZSH','667...............................n')
第三步:用MT管理器复制的绿色部分特大,大概有几万个字节。复制不上,记得打开自动换行。
第四步:用MT管理器,打开 第一步 新建的文件,打开方式 十六进制。
第五步:直接粘贴进去。粘贴方式 粘贴从 十六进制。粘贴进去,你就会发现右边,就已经有转换后的代码了。如果加密一次的脚本,就已经能看见源码了。点击保存。
第六步:如果第五步之后,打开新建的文件,显示的还是加密代码,说明脚本是被多次加密。继续像第二步一样,复制第五步转换完成的代码中的 Decryption函数的绿色部分。在进行第四步,第五步。
第七步:这个时候你以为 Decryption函数的绿色部分核心代码一样,其实是不一样的。继续执行四五次,源码就出来了。
2、电脑端
理解了手机端方法,基本就知道,原理和大概思路就是 HEX和字符串互相转换,因此在电脑上操作,找个在线工具即可。(这里随便贴一个。失效了自己去百度)HEX和字符串互相转换在线工具

这里就不贴图了。只是简单模拟演示一下。

步骤:
第一步:复制 Decryption函数的绿色部分。DZSH加密的核心代码。
把DZSH加密的核心代码,复制到 模拟 HEX 在线工具内转换,展示如下:

  1. 6674A683D322043683D312043613D342043643D382043623D31362050533D32363231343420413D3332206D723D323632......n
复制代码
输出
  1. function Decryption(jian,Text)

  2.   return (Text:gsub('..', function (jian)

  3.     return string.char((tonumber(jian,16))%256)

  4.   end))

  5. end

  6. --  Decryption()函数中,每次解密转码后,核心代码是不一样的。这次是 'F6E20.....n'
  7. local jian = Decryption('DZSH','F6E20.....n')

  8. local dzsh= load(jian)

  9. load(dzsh)
复制代码


如果输出的不是源码,就继续 复制 Decryption函数的绿色部分。进行转化。(每次解密后的核心代码是不一样)如果不是源码。就一直循环执行。
把DZSH加密的核心代码,复制到 模拟 HEX 在线工具内转换,展示如下:

  1. F6E202043643D382043623D31362050533D32363231343420413D3332206D723D323632......n
复制代码
输出
  1. --  执行 4 5 次后,源码基本就出来了。不出来就继续循环执行
  2. function Main()
  3.   menu1 = gg.choice({
  4.   "1.功能一",
  5.   "2.功能二",
  6.   "3.功能三",
  7.   "4.功能四",
  8.   "5.功能五",
  9.   "退出"
  10.   }, nil, "不言谢独家制作")
  11.   if menu1 == 1 then byx1() end
  12.   if menu1 == 2 then byx2() end
  13.   if menu1 == 3 then byx3() end
  14.   if menu1 == 4 then byx4() end
  15.   if menu1 == 5 then byx5() end
  16.   if menu1 == 6 then Exit() end
  17.   XGCK = -1
  18. end

  19. function byx1()
  20.   gg.clearResults()
  21.   gg.setRanges(32)
  22.   gg.searchNumber("特征码", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
  23.   gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
  24.   gg.getResults(100)
  25.   gg.editAll("修改的数值", gg.TYPE_DWORD)
  26.   gg.toast("完成后的提示")
  27.   gg.clearResults()
  28. end
  29. .....
复制代码



结尾:

文中涉及到加密,解密都是 给一个思路。具体还需要自己多研究。多琢磨。

最终目的,都是是为了促进大家相互学习。不存在任何侵权行为。

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|T1GM基地

GMT+8, 2025-11-1 07:38

Powered by T1GM基地

Copyright © 2023-2025 T1GM.VIP

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