首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

unidbg调用so文件生成xgorgon

unidbg unidbg特点 unidbg环境配置 加载libcms.so more articles 目前很多 App 的加密签名算法都在so文件中,强行逆向so的话可能会消耗大量时间和资源。...unidbg 他不需要运行 app,也无需逆向 so 文件,通过在 app 中找到对应的 JNI 接口,然后用 unicorn 引擎直接调用 so 文件,所以效率相对要高不少。...加载libcms.so 看过这篇文章的应该已经知道生成xg函数的位置,所以不具体说了。...《抖音xgorgon(0401)》 下面准备调用libcms.so文件中的 leviathan 函数 首先在 src/test/resources 目录下新建文件夹dylib,放入libcms.so文件...“leviathan(II[B)[B” 需要调用的函数名,名字是smali语法,可通过jadx等工具查看 “vm.loadLibrary(new File)” so文件的路径,需要自行修改,最好为绝对路径

3.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从JNI_OnLoad看so的加载

    最后看到了 MethodChannel 的注册是在 JNI_OnLoad 的方法中。这个方法是在 so 被加载的时候调用的。今天主要从so 的加载看一下 JNI_OnLoad 的调用。...Flutter的so加载 我们先从 Application 的代码看起: FlutterApplication.onCreate; |--FlutterMain.startInitialization(...->SetResult(was_successful); return was_successful; } 上面这个过程我们证明了 so 的加载会调用 JNI_OnLoad 。...dlopen、dlsym 使用dlopen,dlsym调用JNI_OnLoad方法; dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程; dlerror返回出现的错误; dlsym...前面我们就有讲过在 so 被加载之后会调用 JNI_OnLoad 方法,我们这次反过来看一下 JNI_OnLoad 加载 native 方法。

    2.3K20

    头文件包含问题

    转载请注明:转载自 祥的博客 原文链接:https://blog.csdn.net/humanking7/article/details/79299045 ---- 先占个坑-后补 以前自己搭建起来的一个稍微大一点的项目...,就会发现一些当初架构起来的问题,头文件包含乱用,导致后期分外蛋疼,我遇到大致两种问题: 头文件全部包含,使得预编译会剔除某个头文件,导致结果:编译单个源文件没有问题,整体进行链接时,会发现找不到剔除的头文件定义的类或者变量...; 接着,就把这个头文件的#include"BB.h"写到#ifndef _AA_H_ /#define _AA_H_前面,这样到会导致下一个问题,头文件嵌套深度太深。...解决方法:头文件中#include的头文件尽量的少,不能太互相交融(这需要开始定义框架时,想清楚变量之间的关系和信息传递的方式),尽量把#include头文件写到源文件(cpp文件中)。...---- 以上 先记下来,后期再进行进一步的理论学习。

    1.8K10

    QT生成动态链接库.so文件

    首先是新建一个工程,选择C++库,打开后是这样的4 然后输入新建的名称,下一步,记得勾选Qtcore那个(就是默认的那个),否则编译似乎不能通过。因为后面自动生成的.h文件里还有这个。...自动生成的有4个文件一个pro,一个cpp,一个XXX.h文件,一个XXX_global.h 可以检查下.pro里的类型是不是lib类型。...下面就可以在XXX.h文件里声明自己要写的函数,进行宏定义,#define一些用到的常量。...函数的实现需要点开.cpp文件,cpp中专门写实现这些函数(方法)的代码。 下面说调用这个函数: 新建一个工程,注意在pro文件中需要将lib的目录和.so的目录加进去。...lib目录(就是.h文件所在目录):INCLUDEPATH +=/home/will/Projects/pluginTest/ .so目录为:LIBS += -L/home/will/Projects/

    4.2K90

    【CMake教程】(四)CMake 配置生成lib或者so的库文件

    (1)系列教程介绍   上面几个教程我们的程序都是生成可执行文件。但是我们在合作开发算法的时候经常需要交付的是一个模块,该模块提供特定的算法功能,用于给整体的项目进行调用。...安装cmake: sudo apt install cmake (3)设置设置我们的程序输出为lib文件   配置输出库文件(lib和so)主要是通过函数add_subdirectory进行配置,使用STATIC...... ...) (4)使用CMake进行编译 CMake在生成文件的过程中会生成很多中间缓存文件,为了使项目更简洁,文件路径更清楚,一般会在项目的root目录下建立一个文件夹,用于存储CMake...生成的中间文件。...命令生成makefile文件 cmake

    12.8K30

    ★ Android基础篇 初步NDK开发 .SO文件生成与JIN调用

    javah -d jni -classpath 自己编译后的 class 文件的绝对路径 debug 后面是空格!...之后就会生成一个.h的文件 创建一个.c的文件,include后面的是生成.h文件的名字 里面的(JNIEXPORT jstring JNICALL Java_com_example_lxndk_JniTest_getString...} 到这里的jni 调 C 就完成了,但是我想说的是!为什么会报这个错???...然后我发现我貌似缺少了东西,Android.mk… 创建Android.mk文件 # 构建系统提供的宏函数 my-dir 将返回当前目录(包含 Android.mk 文件本身的目录)的路径,基本上是固定的...) # 需要构建模块的名称,会自动生成相应的 libNDKSample.so 文件,每个模块名称必须唯一,且不含任何空格 LOCAL_MODULE := jary # 包含要构建到模块中的 C 或

    1.1K10

    【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )

    Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 ) 【Android 安装包优化...】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 ) 【Android 安装包优化...】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 ) 【Android 安装包优化】...使用 lib7zr.so 动态库处理压缩文件 ( 测试 lib7zr.so 动态库调用 ) 一、JNI 中 main 函数声明 ---- 使用 7zr 可执行程序处理压缩文件时时 , 调用的是其主函数...char * 类型的指针 , 就是字符串 , 这是个字符串数组 ; 7zr 程序中的主要的头文件是 7zTypes.h , 该头文件中 声明了主要的 类型 和 函数 ; 引入该头文件 ; #include

    71720

    对抗静态分析——so文件的加密

    来来来,继续讨论一下抗静态分析的问题,这回要说的是如何对so文件进行加密。 【一二三四】 so文件的作用不明觉厉~不对是不言而喻。...但是总有些大牛,对这些方法是无感的,为了加大难度,这些厂商更加丧心病狂的对so文件进行加固,比如代码膨胀、ELF文件格式破坏、字节码加密等等。...首先,我们都知道so文件本质上也是一种ELF文件,ELF的文件头如下 #define EI_NIDENT 16typedef struct elf32_hdr{ /* WARNING: DO NOT...所以当我们将so文件链接到内存中时,存在的不是section,而是segment,每个segment可以看作是相同权限的section的集合。...但是由于这样,所以经常会破坏文件的section结构,让比如IDA、readelf等工具失效,这也是so加固的一种方式。 回到正题,我们继续说加密。

    1.9K90

    Android Studio如何查看JNI生成中的 preprocessorassemble file

    前两天讲了如何使用CMake+make,查看生成的预处理和汇编文件。 但是Android Studio中很尴尬的是CMake+ninja,是没法使用上述方法查看预处理和汇编的。...相信强大的gcc/clang,相信stackoverflow,不懈查找后,发现gcc/clang有个参数叫`-save-temps= `, 意如其名,保存临时文件,而预处理和汇编都是生成object的中间临时文件....o文件同目录,更方便查看 CMAKE_CXX_FLAGS对Cpp文件生效,只设置上述的C_FLAGS是无法让cpp文件生成中间文件的。...set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -save-temps=obj") CMake+ninja这样就搞定,那么远古时代的ndk-build可以生成中间文件么.../arm64-v8a/objs-debug/hello-jni/hello-jni.i LOCAL_CFLAGS := -save-temps 生成位置和build.gradle一样,在hello-jni

    1.4K70

    预处理指令(文件的包含)

    一、基本概念 •其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝另一个文件中。...二、一般形式 1.第1种形式#include 文件名> •直接到C语言库函数头文件所在的目录中寻找文件  2.第2种形式 #include "文件名" •系统会先在源程序当前目录下寻找,若找不到,再到操作系统的...•2.使用#include指令可能导致多次包含同一个头文件,降低编译效率 •比如下面的情况: ? •在one.h中声明了一个one函数;在two.h中包含了one.h,顺便声明了一个two函数。...• •为了解决这种重复包含同一个头文件的问题,一般我们会这样写头文件内容: image.png image.png •大致解释一下意思,就拿one.h为例:当我们第一次#include "one.h...就是这么简单的3句代码,防止了one.h的内容被重复包含。

    1K90

    Python 文件包含的最佳实践

    以下是我总结的一些常见的 Python 文件编写最佳实践:一、问题背景:在 Python 中,如何正确地包含文件是一个常见的问题。...scripts that call different APIs>此时,如果我们需要在 api 文件夹中的某个脚本中包含 db 文件夹中的某个类,该如何进行呢?...例如,在 api 文件夹中的脚本中,我们可以使用以下代码包含 db 文件夹中的 QADB 类:from ..db.Conn import QADB2、使用绝对导入另一种方法是使用绝对导入,即在导入路径中包含包的根路径...例如,我们可以使用以下代码包含 db 文件夹中的 QADB 类:from my_package.db.Conn import QADB3、重新组织项目结构如果项目结构过于复杂,导致文件包含变得困难,我们可以考虑重新组织项目结构...().connect()以下是使用 Python 模块包含文件的代码示例:# my_module/module.pyclass MyClass: def my_method(self):

    20310
    领券