棋牌手游加密逆向,万物皆可Hook

直接拖进jeb查看AndroidManifest.xml的入口点,发现是cocos2djs 写的程序

1

-data android:name="android.app.lib_name" android:value="cocos2djs" />

棋牌手游加密逆向,万物皆可Hook_第1张图片 

 

这里直接把apk里面的assets拖出来,源码就在src目录 js写的

但是这里的js被加密了 jsc,需要先解密棋牌手游加密逆向,万物皆可Hook_第2张图片

 

先等我点一份外卖,原价需要24.88 估计是看我够骚,居然优惠了我十块二

只需要17.88棋牌手游加密逆向,万物皆可Hook_第3张图片

 吃完后我感觉貌似不太好吃,没有女朋友的味道,随手便点了退款棋牌手游加密逆向,万物皆可Hook_第4张图片

 

白嫖完了之后,反手直接把ida给掏了出来

这里是关键 《掏出来比你大系列》

这里把apk lib目录下的libcocos2djs.so拖进ida 在exports搜索 xxtea

可以看到有一个命名为jsb_set_xxtea_key的函数棋牌手游加密逆向,万物皆可Hook_第5张图片

棋牌手游加密逆向,万物皆可Hook_第6张图片 

棋牌手游加密逆向,万物皆可Hook_第7张图片 

拿到key后直接解密jsc,用在吾爱找到了一个工具

棋牌手游加密逆向,万物皆可Hook_第8张图片 

成功解密拿到明文代码,然后再把解密后的js代码拖进vscode分析一下

这里的发包都是使用的send发起 WebSocket

棋牌手游加密逆向,万物皆可Hook_第9张图片

尝试使用wpe抓封包看一下,这里发起的send数据是加密的

大概分析了一下js,代码貌似并没有对数据进行加密

猜测可能是so层对数据进行了加密

棋牌手游加密逆向,万物皆可Hook_第10张图片

棋牌手游加密逆向,万物皆可Hook_第11张图片 

这里直接使用frida进行hook,当前函数偏移量为0X00A5DFEC 

 棋牌手游加密逆向,万物皆可Hook_第12张图片

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

function get_module_address(soname,pianyi)

{

    var module_address = Module.findBaseAddress(soname);

    return module_address.add(pianyi);

}

function main()

{

    Java.perform(function () {

        Interceptor.attach(get_module_address("libcocos2djs.so",0x00A5DFEC),{

            onEnter: function (args) {

                //console.log(new Uint8Array(args[1].readByteArray(args[2].toInt32())).buffer);

                console.log(args[1].readByteArray(args[2].toInt32()));

            },

            onLeave: function (retval) {

            }

        });

    });

}

setTimeout(() => {

    main()

}, 200);

明文出来了棋牌手游加密逆向,万物皆可Hook_第13张图片

 

 

你可能感兴趣的:(逆向开发,javascript,开发语言,ecmascript)