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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19745|回复: 39
收起左侧

[Android 原创] 某LuaJit游戏解密教程~~

  [复制链接]
peng1990sr 发表于 2019-7-14 01:10
引子~~最近挺闲的,玩会手游,想充值点钱买把武器~奈何没有充值渠道
所以只能自己动手了~在MT管理器分析了2天“DEX”无果~~
没有成功,无奈只能从LUA入手了。
1、APKtools反编译文件

APKtools

APKtools

2、打开assets/res/本来想找lua文件的,结果全是各种图片~咋办!!
俗话说得好,找不到媳妇心不死~~
我直接按这吾爱大牛们的教程,具体太多了,我估计列出来这个帖子都装不下~.~  不好意思,都是好人啊
将lib里面最大的so文件拉到IDA里面,话说~吾爱虚拟机那啥ida里面的py什么东西老出错,还是找人帮忙弄的。。
又一村啊又一村,乱点居然看到了unzipfile,然后看到了game.zip,感觉有戏。。然后一顿操作后,具体不好意思说的, 终于找到了zip文件,原来一直在那里,只是你不知道~~
image.png
3、打不开啊,打不开,这个东西~!~
QQ截图20190713231030.png
一阵心灰意冷,实在不行就算了,结果翻so文件,看到了 大牛们说的那个xxtea字符~~
再奔一次吧,万一成了呢~好吧,其实是打开方式的时候不小心点到了文本,看见上面有一串字符串
QQ截图20190713230648.png QQ截图20190713230555.png
4、死马当活马医吧,打开string窗口(好吧,大牛们一直说这个string窗口,但是这个string窗口我把IDA翻了无数遍都没找到,去百度了快捷键才知道Shift+F12可以搞)
貌似转运了,好像不合适吧,管他的,直接搜索文本上面的字符,还真有结果~!
QQ截图20190713230842.png

点进去,然后把hei54拉到一个叫xxtea软件里面,和那个字符串一起放进去,结果就成功了。。其实我是按着lua的套路干的
没想到zip也可以搞~顺利的无语了~~看着解密完成一顿欣喜啊,然后打开解密后的zip文件,居然可以解压了,差点把楼上的妹子都吼下来了。。
5、结果冷水冰凉冰凉的,。,打开乱嘛,无语了,用不用这么复杂啊,你连充值渠道都没有的游戏,有就没那么复杂了。,。(虽然我不一定能看懂这个玩意,只学过几天C )
QQ截图20190713231517.png
6、没办法只能又翻so文件吧,直接到string窗口里,搜索lua,反正你这个总有吧,拉到最下面,感觉像落款的东西luajit2.1事什么鬼,没办法,百度吧
QQ截图20190713231155.png
7、直接把下面的落款复制到百度上搜索,第一个就点进了https://www.freebuf.com/column/177810.html这个链接~真的是时来运转啊。看了一阵看不懂,拉到做下面,
第一句话就是本文所指luajit,皆指luajit2.1.0-beta2版本。好吧版本一样,能搞吧~
image.png image.png

8、下载那个修正的源码。。py的,什么鬼,又是一顿百度,配置了一个2.7和3.7合体版的python环境。。
F12右键,在此处打开命令窗口。。
QQ截图20190713232602.png
py -3 main.py * >1.lua (随便找了一个解密~)
QQ截图20190713232720.png
QQ截图20190713232742.png
然后就解出来了,幸福来的太快了。
9、我靠,里面有几百个文件,肿么办,肿么办,没法只能百度了。找了一个批量加密LuaJit的脚本。


@echo off
if exist out rd /s /q out
mkdir out

setlocal enabledelayedexpansion

cls
:input
set input=:
set /p input= 拖入要编译的lua文件夹:
if "%input%"==":" goto input
if not exist "%input%" goto input
set "input=%input:"=%"

:output
set output=:
set /p output= 拖入要编译后输出的目标文件夹:

if "%output%"==":" goto output
if not exist "%output%" goto output

for %%i in ("%input%") do if /i "%%~di"==%%i goto input
pushd %cd%
cd /d "%input%">nul 2>nul || echo cmd was runing error
set cur_dir=%cd%
popd
set /a num = 0
echo 正在目标文件夹中创建对应目录结构:
for /r %input%  %%a in (*) do xcopy %%a %output% /t /s
echo 创建完成,开始:
for /f "delims=" %%i in ('dir /b /a-d /s "%input%"') do (set /a num += 1
set pt=%%~fi & set "pt=!pt:%input%=%output%!"
luajit -b %%~fi !pt!                                     \\看了一阵,貌似只有这里有用吧。。。py -3 main.py %%~fi >!pt! 改成这个,保存为BAT,搞定
echo 编译后: !pt!)
echo 编译脚本数量:%num%
ATTRIB %output%/*.* +R
echo 编译完成,开始删除空白文件夹:


终于不用手工操作了,美滋滋~~

10、解密是解密了,也修改了几个好像是买东西修改到1块的LUA脚本。然后怎么放回去,没办法~
只能又下载了一个LuaJit加密文件,然后makefile操作一顿。。弄出来了一个EXE文件。
然后又用那个加密的脚本bat加密回去~然后打开解密后的game.zip,将修改后的文件替换回去、。。。

11、最后打开xxtea解密加密软件,用相同的key替换回去。

12、最最最后,打开闪退,失败告终。。。好像每次打开这软件都要重新下载一遍game.zip文件。。算了这么复杂,我不搞了成么

13、链接:https://pan.baidu.com/s/1RQjFks6m5ltdk1YDQJWUcw   提取码:jr88  有软件和游戏的原始程序


借此贴证明这几天的努力没有白费
好吧,无用功~~~~~~~

感谢 https://www.freebuf.com/column/177810.html


[url=]批量加密和解密.rar[/url]
[url=]ljd-master.rar[/url]
[url=]LuaJIT-2.1.0-beta2.rar[/url]
[url=]XXTEA.rar[/url]





QQ截图20190713230422.png
QQ截图20190713230507.png
QQ截图20190713231059.png
QQ截图20190713231438.png

ljd-master.rar

207.25 KB, 下载次数: 428, 下载积分: 吾爱币 -1 CB

LuaJIT-2.1.0-beta2.rar

996.96 KB, 下载次数: 517, 下载积分: 吾爱币 -1 CB

批量加密和解密.rar

1.26 KB, 下载次数: 535, 下载积分: 吾爱币 -1 CB

XXTEA.rar

259.79 KB, 下载次数: 230, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 6吾爱币 +19 热心值 +5 收起 理由
qtfreet00 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xwzj20170829 + 1 + 1 热心回复!
TOBB + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
冥月影 + 1 我很赞同!
静一静 + 2 + 1 谢谢@Thanks!
BY丶显示 + 2 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

salala159 发表于 2019-7-14 23:19
看到楼主这么用心,我就说下吧,针对cocos2d  luajit的游戏怎么改: 首先识别到脚本是luajit,其实楼主就可以放弃解密脚本了,即使是解密了也是中间语言形式,修改了也还原不回去。那问题来了,怎么改呢?静态文件改不了可以改动态内存啊!楼主可以注入一个so,去修改内存,lua和native层进行交互有一个统一的接口 luatofunction,楼主可以在这个接口层坐下文章。其次可以改协议,一般cocos游戏的发包逻辑都在so里面,不会在脚本里面,所以,我认为终极大法就是改协议喽……
SQLite 发表于 2020-4-11 22:48
salala159 发表于 2019-7-14 23:19
看到楼主这么用心,我就说下吧,针对cocos2d  luajit的游戏怎么改: 首先识别到脚本是luajit,其实楼主就可 ...

看到层主的回帖感觉很受启发!我解密得到的也都是luaJIT文件,通过 https://github.com/NightNord/ljd
反编译得到 .lua 的源码,并找到到了关键代码。但是反编译的源码头部出现类似err: unwarper.py assert isinstance(else_warp_out, nodes.EndWarp), 的语句,导致重新编译失效。
看到你的回复,觉得饿有了新的方向,你说 lua和native层进行交互有一个统一的接口 luatofunction ,想了解一下具体的操作或者有无相关例子?
zy1234 发表于 2019-7-14 01:44
cyhcuichao 发表于 2019-7-14 03:29
有软件教程吗
mmji 发表于 2019-7-14 06:32
好像每次打开这软件都要重新下载一遍game.zip文件

如果真是这种情况的话,可以尝试抓包修改一下,应该有文件md5校验之类的,抓包修改一下应该能过
 楼主| peng1990sr 发表于 2019-7-14 08:03
mmji 发表于 2019-7-14 06:32
如果真是这种情况的话,可以尝试抓包修改一下,应该有文件md5校验之类的,抓包修改一下应该能过

嗯嗯,谢谢了,我学学看,再试试~
 楼主| peng1990sr 发表于 2019-7-14 08:03

什么软件的教程,我没有视频,我都是瞎蒙的。。
gunxsword 发表于 2019-7-14 09:02
感谢分享,功能最后成功没!
 楼主| peng1990sr 发表于 2019-7-14 09:11
gunxsword 发表于 2019-7-14 09:02
感谢分享,功能最后成功没!

额,还在实验中
zhangzhaoshuai 发表于 2019-7-14 09:12
有时间去学习下  谢谢分享
forrest888 发表于 2019-7-14 10:02
谢谢了,我学学看
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-3-29 01:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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