-
-
[原创]jsc反编译以及二进制修改
-
发表于: 2019-8-7 09:42 6066
-
最近碰到jsc的游戏,游戏中有跳过功能但有限制,想着对游戏进行修改达到无条件跳过。
首先,反编译jsc文件,使用这个工具531K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6A6M7X3g2D9j5h3&6U0k6g2)9J5c8X3A6K6j5#2)9J5k6r3c8W2j5$3!0E0M7r3W2D9k6g2)9J5k6r3#2G2P5X3A6K6i4K6u0V1x3K6c8Q4c8f1k6Q4b7V1y4Q4z5o6S2Q4c8e0g2Q4b7e0c8Q4b7e0N6Q4c8e0S2Q4z5o6N6Q4b7U0c8Q4c8e0g2Q4b7U0m8Q4b7U0q4Q4c8e0k6Q4z5e0S2Q4b7f1k6Q4c8e0g2Q4b7f1g2Q4z5o6W2Q4c8e0S2Q4b7e0y4Q4z5o6g2Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4b7f1q4H3K9s2m8Q4c8e0N6Q4z5p5g2Q4b7f1k6Q4c8e0g2Q4b7e0u0Q4z5o6y4Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0N6Q4z5o6c8Q4b7U0k6Q4c8e0g2Q4z5e0m8Q4z5p5g2Q4c8e0N6Q4z5e0c8Q4b7e0S2U0L8$3#2H3L8%4y4W2M7W2!0q4y4g2!0m8c8W2!0n7b7#2!0q4y4g2)9^5y4g2!0m8y4g2!0q4z5g2!0m8x3g2!0n7z5g2!0q4y4#2)9&6b7W2!0m8c8g2!0q4y4W2)9^5z5g2)9^5x3q4!0q4z5g2)9&6b7#2)9^5x3q4!0q4c8W2!0n7b7#2)9^5z5g2!0q4y4W2!0n7x3#2!0m8z5q4!0q4y4W2)9^5y4q4)9^5c8W2!0q4z5q4!0n7c8W2)9&6z5g2!0q4z5g2)9^5y4#2)9^5b7#2!0q4y4g2)9^5c8W2!0m8b7g2!0q4z5q4)9^5x3#2!0n7c8q4!0q4y4g2)9^5c8W2)9^5c8q4!0q4y4#2!0n7b7#2)9&6y4W2!0q4z5q4!0m8c8W2)9&6x3g2y4H3K9h3c8W2M7V1#2G2L8X3E0W2P5b7`.`. 34 这个版本,反编译后的文件能看大部分的代码。
在文件中搜索skip,观察可知如下的代码就是跳过按钮的判断

接下来,根据字节码对照表寻找这段代码在jsc中对应的位置,字节码 对照表 0a5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2E0L8%4A6A6L8r3I4S2i4K6u0W2L8%4u0Y4i4K6u0r3k6h3&6Q4x3X3c8g2f1#2)9J5c8X3c8G2j5%4y4Q4x3V1k6y4L8%4A6A6L8r3I4S2i4K6u0r3f1s2u0G2K9X3g2U0N6s2y4Q4x3V1k6e0M7r3W2V1k6i4u0y4L8$3&6C8k6i4W2Q4x3V1k6u0L8Y4c8W2M7X3&6S2L8s2y4Q4x3V1k6n7P5i4c8W2j5$3!0V1k6b7`.`.
在反编译的js搜索canSkip,上面代码的canSkip是最后一个

这块字符串对应的代码在它前面,如图中所标3B 00 00 00 00是取下标为0的字符串cc,而我们要找的canSkip小标是0x11,可以从头往下跟着代码找,熟悉的话就知道35 00 00 00 11这个就是获取canSkip字符串,后面跟着的20是取反,再后面07就是IFEQ的判断语句,后面的52是else执行的地方,而我们的跳过功能执行的地方刚好是else之后,我们就可以将07改成06(GOTO),直接goto执行跳过代码了。改完之后替换原来的jsc文件,这样就可以无条件跳过了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
赞赏
雪币:
留言: