美文网首页破解
2018-09-16 黑盒调用 libcocos2dlua 动态

2018-09-16 黑盒调用 libcocos2dlua 动态

作者: 自由快挂 | 来源:发表于2018-09-16 17:13 被阅读66次

如果 so 没有被加壳,应该就可以:

#include "cocos2d.h"

using namespace cocos2d;

int main(int argc, char** argv) {
    log("%s\n", cocos2d::cocos2dVersion());

    ZipUtils::setPvrEncryptionKey(1,2,3,4);
    Image* img = new Image();
    img->initWithImageFile("xx.pvr");
    img->saveToFile("xx.png")
    delete img;
    return 0;
}

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := inject
LOCAL_SRC_FILES := inject.cpp

#shellcode.s

# LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
LOCAL_LDLIBS += -llog
LOCAL_LDLIBS += -L. -lcocos2dlua

#LOCAL_FORCE_STATIC_EXECUTABLE := true

include $(BUILD_EXECUTABLE)

Application.mk

APP_ABI := armeabi-v7a #x86
APP_STL := c++_static

把 so 、 inject 和 资源文件 push 到手机上。
MuMu 模拟器上跑不起来,明天拿个手机测试一下。

UP:

D/cocos2d-x debug info(24960): ###cocos2d-x-3.16>>>>
09-16 18:48:47.240 25111-25111/? A/libc: Fatal signal 7 (SIGBUS) at 0xfffffffb (code=1), thread 25111 (inject)

可以调用一下函数,但是有崩溃,还不知道什么回事。

UP2:
我知道了,少了 java 部分的代码,FIleUtils 涉及到 java 部分的代码,所以导致崩溃了。

成功

image.png

主要代码如下:

    unsigned char *buf = nullptr;
    ssize_t bufferLen = 0;
    const char *file = "/data/local/tmp/ui_town_warehouse.pvr.ccz";
    getFileData(&buf, &bufferLen, file);

    unsigned char* unpackedData = nullptr;
    auto unpackedLen = ZipUtils::inflateCCZBuffer(buf, bufferLen, &unpackedData);

    writeFile(unpackedData, unpackedLen, "/data/local/tmp/1.pvr");

然后通过adb把文件拉回本地:

adb pull "/data/local/tmp/1.pvr"

UP3:
稍后奉上完整的工程以及脚本。

2018-09-16 23:27

  • END

相关文章

  • 2018-09-16 黑盒调用 libcocos2dlua 动态

    如果 so 没有被加壳,应该就可以: Android.mk Application.mk 把 so 、 injec...

  • 带上眼罩测试软件

    阅读《软件测试》书籍随手记录的笔记 动态黑盒测试不深入代码细节测试软件的方法称为动态黑盒测试。动态黑盒测试常被称为...

  • 动态黑盒测试

    不深入代码细节测试软件方法称为动态黑盒测试。它是动态的,因为程序在运行--软件测试员像用户一样使用它;同时,它是黑...

  • 测试基础——带上眼罩测试软件

    动态黑盒测试:带上眼罩测试软件 不深入代码细节测试软件的方法称为动态黑盒测试。其常被称为行为测试,因为测试的是软件...

  • 黑盒测试用例设计

    微信公众号:软测小生ruancexiaosheng概念:黑盒测试是把测试对象看做一个黑盒子,利用黑盒测试法进行动态...

  • 《软件测试》第2版读书笔记

    第4章——第7章 1、文章介绍的4种测试方法,从易到难分别是 静态黑盒测试>动态黑盒测试>静态白盒测试>动态白盒测...

  • 软件测试基础-测试手段

    按测试手段区别测试类型 黑盒、白盒静态、动态手工、自动化 黑盒测试 一般应用于系统测试阶段 黑盒测试主要测试什么呢...

  • golang调用c动态库

    golang调用c动态库 简介 golang调用c语言动态库,动态方式调用,可指定动态库路径,无需系统目录下 核心...

  • 我眼中的元编程-方法篇

    Ruby是一门动态语言,动态创建与调用方法是其中一个体现。 动态方法 动态调用方法(动态派发) 动态调用方法,是指...

  • 动态调用动态库方法 c/c++ linux windows

    动态调用动态库方法c/c++linuxwindows 关于动态调用动态库方法说明 一、 动态库概述 1、 动态库的...

网友评论

    本文标题:2018-09-16 黑盒调用 libcocos2dlua 动态

    本文链接:https://www.haomeiwen.com/subject/morfnftx.html