zhgqthomas
V2EX  ›  Android

如何获得微信小游戏跳一跳源码

  •  
  •   zhgqthomas · Jan 2, 2018 · 63287 views
    This topic created in 3226 days ago, the information mentioned may be changed or developed.

    前言

    昨天 V2EX 上的一篇通过抓包来获取微信跳一跳源码的文章走红,文章连接点击这里

    我也在通过文章中的方式进行了抓包,但是并未探测到小游戏的下载连接,可能微信对此已经进行了修复。而且上文中提供的下载连接也显示为 404 的状态码。

    虽然抓包未果,但是依然可以从本地将源码抽离出来,下面将介绍如何从 Android 手机里面找到微信下载的小游戏源码

    准备工作

    需要注意的是必须是已经 root 了的 Android 手机,否则将没有权限访问对应手机的系统文件夹

    通过 USB 将手机连接到电脑上,然后运行以下命令

    $  adb devices
    

    如果显示了一下信息

    List of devices attached
    71MBBL6228EU	device
    

    说明手机已经连接到电脑上,如显示未找到 adb 命令,则说明 Android SDK 安装错误或 adb 未添加到电脑 path 中,请自行上网进行相应查阅

    手机连接电脑成功后,运行一下命令

    $  adb shell
    $  su
    

    终端出类似 root@{手机型号} 前缀,说明已经进入到 root 模式下

    $ cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
    

    {User} 为当年用户的用户名,类似于 1ed**********c514a18

    然后当前目录就是微信用于存放小程序和小游戏下载包的位置

    $ ls
    _-791877121_3.wxapkg
    _1079392110_5.wxapkg
    _1079392110_5.wxapkg_xdir
    _1123949441_92.wxapkg
    _576754010_1.wxapkg
    

    以上是我的微信中所下载过的小程序和小游戏源码

    因为 /data 目录为系统级目录,无法直接将其进行复制,需要重新挂载为可操作模式

    $ mount -o remount,rw /data
    

    此时就可以将当前目录下的文件拷贝到 sdcard 中

    $ cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_1079392110_5.wxapkg /mnt/sdcard
    

    然后将 _1079392110_5.wxapkg 文件拷贝到电脑里,通过该脚本进行解压后,即为其源码

    编译源码

    通过微信小游戏开发工具新建一个空白的小程序或者小游戏的项目,主要不要选择快速启动模板

    然后把刚才解压出来的源代码复制到刚刚创建的项目目录中,开发工具会提示编译错误,这时只要在项目中新建一个 game.json 文件,并在文件里写入以下代码

    {
      "deviceOrientation" : "portrait"
    }
    

    然后将开发工具的调试基础库改为 game

    程序就会在开发者工具里运行起来了

    参考

    Supplement 1  ·  Jan 2, 2018

    更正文中错误: 文中拷贝目录下的文件到 sdcard 中的命令,笔误写错,应该为

    $ cp /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_1079392110_5.wxapkg /mnt/sdcard
    

    重要提醒就是不建议普通用户将自己的安卓手机进行 root,本人 root 的也只是测试机,自用安卓手机 root 后有很高的安全风险,请慎重!!!

    126 replies  •  2018-06-26 16:57:23 +08:00
    1  2  
    ❮ ❯
    Solix
    Solix
    Jan 2, 2018 via iPhone
    1
    要上新闻,占位
    lekai63
    lekai63
    Jan 2, 2018 via iPhone
    2
    点赞
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Jan 2, 2018
    3
    厉害了
    rootsir
    rootsir
    Jan 2, 2018
    4
    赞 mark
    est
    est
    Jan 2, 2018
    5
    这个是回复 /t/419229 这贴的吧。
    voocel
    voocel
    Jan 2, 2018 via Android
    6
    火前留名
    dobelee
    dobelee
    Jan 2, 2018 via Android
    7
    火鉗劉明。
    YvesX
    YvesX
    Jan 2, 2018
    8
    这个帖有潜力
    learnshare
    learnshare
    Jan 2, 2018
    9
    小程序离死亡又近了一步
    dawnven
    dawnven
    PRO
    Jan 2, 2018 via Android
    10
    可怕了
    kingcos
    kingcos
    Jan 2, 2018 via iPhone
    11
    666,res 文件夹下面是游戏里用到的资源文件吗?
    adian
    adian
    Jan 2, 2018
    12
    emmm
    diydry
    diydry
    Jan 2, 2018
    13
    厉害。。
    0754
    0754
    Jan 2, 2018
    14
    66666
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    15
    @kingcos 恩 是的,但是微信对小游戏有包大小的限制在 4M 左右,所以 res 文件夹下只放一些启动需要的资源文件,进入后会从网络下载一部分
    ray1504
    ray1504
    Jan 2, 2018
    16
    厉害了~~~火钳刘明
    6diyipi
    6diyipi
    Jan 2, 2018
    17
    安卓手机这个要求和困难
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    18
    @6diyipi 还可以吧,像小米和魅族等国内手机厂商,root 很简单的
    jason19659
    jason19659
    Jan 2, 2018
    19
    可以刷分之后马上就没人玩了
    wangmm
    wangmm
    Jan 2, 2018
    20
    火钳刘明
    ycmchong
    ycmchong
    Jan 2, 2018
    21
    火钳刘明
    bravecoder
    bravecoder
    Jan 2, 2018❤️1
    22
    楼主整理总结的不错,刷分其实只是一个噱头,有意思的点最后还是需要落在技术上。
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    23
    @bravecoder 也要多感谢你文章的指引
    flowerwrong
    flowerwrong
    Jan 2, 2018
    24
    没加密。。。。。。。
    qsnow6
    qsnow6
    Jan 2, 2018
    25
    `未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。`

    入口怎么配置
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    26
    @qsnow6 你解析的是小程序的文件吧,那就自己创建个 app.json 然后添加点配置信息
    macleek
    macleek
    Jan 2, 2018
    27
    这个方法 @lrdcq 早在帖子 /t/419056 里回复了嘛。。。🙂
    tcpdump
    tcpdump
    Jan 2, 2018
    28
    能不能 HONG BAO 帮忙弄个微信小程序源码?
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    29
    @macleek 恩 对的,我只是将自己实践的过程进行了整理,方法并非原创
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018❤️1
    30
    @tcpdump 你可以自己先实践一下,如果哪里遇到了问题,可以交流解决
    tcpdump
    tcpdump
    Jan 2, 2018
    31
    @zhgqthomas 硬件限制,没安卓 ROOT 机器
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    32
    @tcpdump 不好意思,流传别人开发的源码可能不太好,这个还需要你自己想想办法,技术实践上可以进行交流
    tcpdump
    tcpdump
    Jan 2, 2018
    33
    @zhgqthomas 好的,谢谢。
    qsnow6
    qsnow6
    Jan 2, 2018
    34
    @zhgqthomas #26
    调试基础库里没有 game 是版本的问题?
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    35
    @qsnow6 你可能用的还是旧的微信开发工具,文中有小游戏版本的微信开发工具链接
    qsnow6
    qsnow6
    Jan 2, 2018
    36
    @zhgqthomas #35 有下载页面吗?需要下载 windows 版的
    luanjia
    luanjia
    Jan 2, 2018❤️1
    38
    如果已经 root 了的手机的话,直接使用 RE 管理器( Root Explore )到相应目录把小程序源代码复制出来更方便一些,我就是这么干的,多谢楼主的总结~
    xingstar
    xingstar
    Jan 2, 2018
    39
    666 啊,很赞
    itbeihe
    itbeihe
    Jan 2, 2018
    41
    厉害了
    liuxu
    liuxu
    Jan 2, 2018
    42
    这操作厉害了
    killadm
    killadm
    Jan 2, 2018
    43
    有些手机其实不用 root,手机自带的备份功能就能把 data 下边的数据打包出来
    fuwu1245
    fuwu1245
    Jan 2, 2018
    44
    感觉可以用模拟器来代替一下实体机。。
    silva
    silva
    Jan 2, 2018
    45
    要是可以用模拟器就更方便了,专门找个测试机还是麻烦
    YanSep
    YanSep
    Jan 2, 2018
    46
    这个很厉害了。
    3016
    3016
    Jan 2, 2018
    47
    楼主厉害,洗摸杯
    openbsd
    openbsd
    Jan 2, 2018
    48
    竟然有如此好事,我喜欢的几个小程序是可以拿到源码了 ?
    Deeer
    Deeer
    Jan 2, 2018
    49
    为什么我没有 game 这个基础 ku
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    50
    @fuwu1245 模拟器是跑不起来的,微信包内只有 arm 架构的 so 文件
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    51
    @Deeer 看 35 楼的回复
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    52
    @openbsd 对的,但是 js 文件都是压缩过,真想摸清楚程序的逻辑要经过断点调试
    guoming0000
    guoming0000
    Jan 2, 2018
    53
    自从我 post 了 10 万分爽了几个小时,现在不管怎么玩都是 0 分了,谁告诉我怎么办哦,我擦嘞。。。
    Deeer
    Deeer
    Jan 2, 2018
    54
    有没有人遇到这个提示的
    VM82:2 未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。
    Norie
    Norie
    Jan 2, 2018
    55
    上 github
    openbsd
    openbsd
    Jan 2, 2018
    56
    @zhgqthomas
    其实只想看看大神写的代码而已,想想还是算了
    半天没找到可以 root 的设备
    fuwu1245
    fuwu1245
    Jan 2, 2018
    57
    找模拟器试了一下,可以打开到跳一跳的加载页面,但是加载不进去
    到 LZ 说的 data 目录中可以获取到跳一跳的源码,然后拿之前的解包工具解包了下
    得到的源码是压缩过的。。。
    fhefh
    fhefh
    Jan 2, 2018
    58
    多谢 mark
    CloudnuY
    CloudnuY
    Jan 2, 2018
    59
    低调低调…………
    EricFuture
    EricFuture
    Jan 2, 2018
    60
    非常不错,顶一个!
    SourceMan
    SourceMan
    Jan 2, 2018
    61
    确定是源码吗?开发过小程序的应该都知道有一个“压缩后上传”的选项

    哎,2 个帖都有“源码”关键字,我好想说标题党
    vjnjc
    vjnjc
    Jan 2, 2018
    62
    @SourceMan 连 map 都有应该是源码了吧。
    vjnjc
    vjnjc
    Jan 2, 2018
    63
    楼主可以把跳一跳删掉,改为 [如何获得微信小程序源码]
    qsnow6
    qsnow6
    Jan 2, 2018
    64
    不过解压出来的是 html 文件,并不是 wxhtml
    ahaxzh
    ahaxzh
    Jan 2, 2018
    65
    http://java.zhaoxuyang.com/WxTyT/

    折腾了半天 js 公司依旧下载不了,随便百度了下,看到上面的链接。
    kyrkwode
    kyrkwode
    Jan 2, 2018
    66
    有没有兄 dei 把源码打包一份放到网盘让我学习学习。
    ieliwb
    ieliwb
    Jan 2, 2018
    67
    厉害,小程序都被你们玩坏了
    qsnow6
    qsnow6
    Jan 2, 2018
    68

    为啥编译不可能呢
    kyrkwode
    kyrkwode
    Jan 2, 2018
    69
    @qsnow6 兄 dei 能不能把源码打包一份放到网盘让我学习学习
    a6377508
    a6377508
    Jan 2, 2018
    70
    厉害
    ACool
    ACool
    Jan 2, 2018
    71
    这波操作很 6
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    72
    @qsnow6 你这是建立了个项目,在创建的时候需要点击的是小游戏,小游戏是没有 app.json 一说的,只需要 game.json
    Alex6
    Alex6
    Jan 2, 2018
    73
    这一波,都扒出来了,玩的 666
    zhongdong
    zhongdong
    Jan 2, 2018
    74
    厉害了
    MiaSanMia
    MiaSanMia
    Jan 2, 2018 via Android
    75
    厉害
    lneoi
    lneoi
    Jan 2, 2018
    76
    厉害了
    tcpdump
    tcpdump
    Jan 2, 2018
    77
    page-frame.html 这个,怎么调试?
    qsnow6
    qsnow6
    Jan 2, 2018❤️4
    78
    CDN 的那个 IP 失效了,我提供一个目前可用的方法

    https://servicewechat.com/weapp/release/{appid}/{version_num}.wxapkg
    qsnow6
    qsnow6
    Jan 2, 2018
    79
    @kyrkwode #69 看 78 楼,的直接下就可以了
    run2
    run2
    Jan 2, 2018
    80
    总想闹个大新闻,那个不算是源码,是压缩过的(类似网站 webpack 过的 js ) 你拿到又能怎样?
    artandlol
    artandlol
    Jan 2, 2018
    81
    @sobigfish 有解压工具
    tcpdump
    tcpdump
    Jan 2, 2018
    82
    @artandlol 求一个
    mimiga
    mimiga
    Jan 2, 2018
    83
    厉害了我的骑摩托马斯哥
    airtayork
    airtayork
    Jan 2, 2018
    84
    解压之后的代码是混淆过的,没法看,是我操作的太晚了吗?
    facetest
    facetest
    Jan 2, 2018 via Android
    85
    压缩包加个密就行了
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    86
    @airtayork 解压完的代码肯定是经过压缩的,但是格式化之后逻辑还是可以整清楚的

    ![]( http://upload-images.jianshu.io/upload_images/854027-97d29112660deb03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    通过调试工具可以找到最终提交分数的地方
    artandlol
    artandlol
    Jan 2, 2018
    87
    windows 最新开发工具版本
    hts://dldir1.qq.com/WechatWebDev/1.0.0/201712280/fix/wechat_devtools_1.02.1712280_x64.exe

    官网上挂的还是 1205 没有 game 的
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    88
    @mimiga 尼玛
    qiayue
    qiayue
    Jan 2, 2018
    89
    小程序的包是没办法直接运行的,小游戏的可以
    yangeren
    yangeren
    Jan 2, 2018
    90
    厉害厉害
    JohnTsemin
    JohnTsemin
    Jan 2, 2018 via Android
    91
    跳一跳:我到底犯了什么错?你们要这样搞我?
    iwtbauh
    iwtbauh
    Jan 2, 2018 via Android
    92
    /data 本来就是 rw 的,不需要重新挂载
    Bazhe
    Bazhe
    Jan 2, 2018
    93
    https://mp.weixin.qq.com 不在以下 request 合法域名列表中
    怎么解决?
    JiangVoid
    JiangVoid
    Jan 2, 2018 via Android
    94
    或许可以试一试。
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    95
    @Bazhe 那个解决不了 因为小游戏还没有开放注册,开放注册之后有了 app id 就可以设置 request 合法域名列表了
    Bazhe
    Bazhe
    Jan 2, 2018
    96
    @zhgqthomas 那你是怎么运行起来的小游戏的,我的没有开始游戏的按钮。。。。
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    98
    @Bazhe 游戏本身是可以正常运行的 只是所有的网络请求不能跑通 你可以尝试把开发工具关了重新进入项目试试 现在开发工具还不是特别稳定 我就经常会卡死
    zhgqthomas
    zhgqthomas
    OP
    Jan 2, 2018
    99
    @fuwu1245 这个看 log 是找不对相应的函数声明 没有源码我也不知道问题在哪
    msl12
    msl12
    Jan 3, 2018
    100
    留名
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1342 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 324ms · UTC 20:11 · PVG 04:11 · LAX 12:11 · JFK 15:11
    ♥ Do have faith in what you're doing.