GameGuardian Lua base64加密

利用GG进行base64加密,不喜勿喷,友情提示:不能直接使用

----------------------------------------打上花火----------------------------------------


1.首先我们需要简单科普一下base64是什么:

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。

【中文名】 基于64个可打印字符来表示二进制数据 外文名 base64 属    性 编码方式 应    用 用于传输8Bit字节代码 定    义 8Bit字节代码的编码方式之一 可用于 在HTTP环境下传递较长的标识信息 特    性 Base64编码具有不可读性

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。

此外还有一些变种,它们将“+/”改为“_-”或“._”(用作编程语言中的标识符名称)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。

Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。


2.那么知道了工作原理,我们就可以开始写加密,那么加密原理又是什么呢?请看以下代码:

local function encodeBase64(source_str)

    local b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

    local s64 = ''

    local str = source_str

    while #str > 0 do

        local bytes_num = 0

        local buf = 0

        for byte_cnt=1,3 do

            buf = (buf * 256)

            if #str > 0 then

                buf = buf + string.byte(str, 1, 1)

                str = string.sub(str, 2)

                bytes_num = bytes_num + 1

            end

        end

        for group_cnt=1,(bytes_num+1) do

            local b64char = math.fmod(math.floor(buf/262144), 64) + 1

            s64 = s64 .. string.sub(b64chars, b64char, b64char)

            buf = buf * 64

        end

        for fill_cnt=1,(3-bytes_num) do

            s64 = s64 .. '='

        end

    end

    return s64

end


3.从上面我们得到了思路,开始写支持GG执行的代码,让GG兼容这个工作:

baseEecrypt = gg.prompt({[1]="输入代码(复制粘贴即可)"}, {  },{[1]="text"}) -- 利用prompt框来进行操作

if baseEecrypt == nil then  -- 如果没有选择或取消选择

gg.setVisible(true) -- 弹出界面

os.exit() -- 结束

end -- 到这里已经结束了,也就就不存在运行bug一说

操作项执行效果如图1-1:

1-1



4.好,那么有了操作项我们就可以把base64的加密原理写入(写在操作项的后面,执行体的前面),这里不再复述


5.接下来我们写执行体,什么是执行体呢?总体来说就是让代码运作起来的东西,也叫做工作体

这里我们将会用到全局变量,替换,还有简单的文件写入方式

废话不多说,看代码:

JMDM = baseEecrypt[1] -- 设置变量

setcodes = encodeBase64(JMDM) -- 设置执行体

setcodes = string.gsub(setcodes, "'", "'") -- 逐字替换

file = io.open("/storage/emulated/0/base64加密结果.txt", "w") -- 写出路径,如果有原文件将会覆盖写出

file:write(setcodes) -- 写入文件

xpcall(print(setcodes),error) --这里是打印出结果,方便查看,如果有错误将会抛出

file:close() -- 结束写入

base_src = loadfile("/storage/emulated/0/base64加密结果.txt") -- 加载

pcall(base_src) -- 保护调用加载


好了,该干的我们已经做完了,是不是觉得很简单?

下面我们来开始实战测试

例:我们输入:ABCDEFGHIJKLMNOPQRSTUVWXYZ

加密效果如图1-2,1-3


1-2

1-3

总结:以上就是利用GG来进行base64加密的教程

解码原理:其实解码原理也很简单,逆推即可,这里也不多复述

如果小伙伴们怕被别人秒解怎么办?问题不大,你只需要按照我给出的思路将base64和RC4写在一起即可,不要忘了写密码哦,也不要随意的把密码给出去,如果有能力的可以加入XOR来进行简单的异或操作。

Thats All.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容