还是以大神apk为例,通过前面 分析app解密lua脚本,我们能够解密大神apk的lua脚本,现在我们来解密其资源(配置文件和图片等)。我们以比较重要的配置文件为例,未解密之前:
        文件头部也有签名值:fuckyou!。看到这,我们首先就想到是不是也是用xxtea加密的,我们用上面的方法,先xxtea解密,再解压,发现依旧是乱码,在操作的过程中就出现了错误,显然,要否定我们刚才的猜想。我们继续按部就班的解密配置文件。

稍微思考一下,文件头部是:fuckyou!如果想对文件进行解密,那么不可避免的需要处理字符串:fuckyou!,所以,我们应该能在idaPro中搜到fuckyou字符串,然后以fuckyou字符串所在代码段处的函数分析调试解密即可。验证一下我们的猜想,打开idaPro,打开string视图,搜索fuckyou:

        居然啥也没有!猜测应该是做过优化,在某个地方把字符串优化掉了。

线索断了,但是好奇心还是让我们继续,这时候,我们可以浏览cocos2d框架源码,结合网上一些资料,发现cocos2d对文件的处理封装到了CCFileUtils类中:

        函数有些多,不一一贴了,从网上也找到了前辈的经验:

        好了,我们现在回到idaPro,在export窗口,搜索getData:

        进这两个函数,反编译看下,长得不大像,略过,但是先记下,在动态调式时,我们可以在此下个断。

我们再来看getFileData:

        由于app运行在Android平台上,我们看Android平台的CCFileUtilsAndroid::getFileData:

        我们接着跟踪:

        代码很长,就不全贴了,贴此函数关键的部分:

       看到上图,感觉就是它了,呵呵!但是我们还是需要继续分析验证。函数处理文件头部sign时,并不是直接与字符比较而是与其ASCII值一个一个比较,所以我们在字符串窗口是搜不到fuckyou!的。接着往下看,当函数判断完是符合加密格式的文本时,会移除前8个字节(fuckyou!),然后与异或表中的值进行异或操作,每256个字节循环操作。

我们可以看下byte_A1C55F:

        至此,我们已基本可以确定文件解密函数及过程了,我们可以动态调试,再确认一下,当app调用完这个函数后,内存中应该是明文内容了。当我们调试时,分别在getData、CCFileUtilsAndroid:doGetFileData函数开始和结束时下断,GetData函数下断:

        doGetFileData函数下断:

        虽然两个函数都下断了,但是只在doGetFileData断点出暂停,说明解密过程中是走的doGetFileData函数,符合我们的预期,看下寄存器及内存:

        我们看到内容在doGetFileData之前是密文,函数返回之前已经解密成明文了,这说明我们之前的分析是对的。

好了,现在,我们可以将异或表byte_A1C55F拷贝出来,然后模仿app的解密过程(可从GitHub上找个xor解码脚本,稍作修改即可)写一个小工具,对大神.apk的所有资源进行解密了:

原文链接:http://www.freebuf.com/column/173234.html

cocos2d-LUA逆向之解密app资源相关推荐

  1. python123 app下载_Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  2. Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  3. python爬取app、返回的是加密数据_Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  4. 【爬虫逆向案例】某道翻译js逆向—— sign解密

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! [爬虫逆向案例]某道翻译js逆向-- sign解密 1.前言 2.步骤 3.源码 4.号外 1.前言 相信各位小伙 ...

  5. android+eclipse工程,#Cocos2d+lua#android+Eclipse工程编译设置

    用Elicpse编译cocos2d+lua的工程几点注意点记录: 1.设置工程属性Windows->Preferences->NDK目录 2.右键Android Tools->Add ...

  6. Teams App 资源中心种草指南

    备受企业关注的 Teams App 资源中心 IT 管理员.企业管理者的必备效率软件 今日种草者免费安装 人工录音 + AI 配音,高效创建企业资源,管理员随时下载内容数据 资源中心作为一款提高企业生 ...

  7. Android app资源监控

    我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化 实现原理 1.通过adb命令查看app资源内存 2.通过python ...

  8. cocos2d lua 环境搭建

    标题貌似起的有点不好... 编辑器用sublime text 2 调试用decoda 弄这个sublimetext 2的lua环境和绑定cocos2d-x花了几天时间,郁闷的很... 记录一下吧,也希 ...

  9. 逆向某视频app(一)

    本文为纯技术分享,文章内容不涉黄,适合对xposed有兴趣的读者 逆向某视频app(一) 逆向某视频app(二) 目录 前言 xposed破解 1.反编译apk 2.分析代码 前言 有一段时间没写博客 ...

最新文章

  1. php找不到phpmyadmin,nginx下找不到phpmyadmin文件
  2. Web性能压力测试工具——Siege详解
  3. 开发日记-20190429 关键词 患病 NDK
  4. 浏览器访问solr报错:HTTP Status 500 - {msg=SolrCore 'collection1' is not available due to init failure
  5. [POJ 3155] Hard Life
  6. spark ui的访问地址_Spark篇之HA集群搭建
  7. 那些年,登山徒步记录,立贴
  8. eclipse启动tomcat 404
  9. 信息学奥赛一本通 1147:最高分数的学生姓名 | OpenJudge NOI 1.9 02:输出最高分数的学生姓名
  10. mysql索引下推原理_MySQL:好好的索引,为什么要下推?
  11. Subversion under Linux [Reprint]
  12. java 将bean转化为map,将javabean转化为map对象
  13. acrobat xi pro 简体中文语言支持包_在朋友圈收表情包收到手软?预感下一个好玩的功能会是它...
  14. 字符串转数组和数组转字符串
  15. python多次判断_python - 怎么判断函数或方法多次使用是否需要定义临时变量?
  16. Import REC修复的时候找不到被调试程序进程
  17. 探索性因子分析和验证性因子分析有什么区别?
  18. PDF怎么转换成Word?来看这两个方法
  19. CPAN下载安装pm包方法
  20. 阿里云虚拟主机项目根目录指向public目录下

热门文章

  1. Autodesk CAD帮助文档总结三 DXF 组码
  2. Android Studio 开发app 实现支付宝授权登录,获取支付宝账号头像昵称等信息
  3. slickedit Code page not installed
  4. VC++操作Excel 2007
  5. Activiti6自学之路(六)——Activiti中用户与用户组
  6. 前端HTML+CSS面试题汇总一
  7. 计算机CQ,什么是Cq(Ct)值?
  8. R-概率统计与模拟(三)变换均匀分布对特定分布进行抽样
  9. 成都百词斩2018web前端秋招笔试题
  10. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)