描述该文件的作用#include stdioh#include stringh#include stdlibh#include errnoh#include DexFileh#include aesh#include sha1h#include adler32h#define PROTECT_SIZE 0x400000inline static void PrintFailedAndDiechar
该文件的作用是将一个payload.dex文件和一个unshell.dex文件合并成一个新的dex文件,并对payload部分进行AES加密。具体流程如下:
- 包含了一些头文件,如stdio.h、string.h、stdlib.h等。
- 定义了一个常量PROTECT_SIZE为0x400000。
- 定义了一个内联函数PrintFailedAndDie,用于打印错误信息并终止程序。
- 定义了一个函数PrintUsage,用于打印程序的使用方法。
- 定义了一个函数GetFileSize,用于获取文件的大小。
- 定义了一些辅助函数,如FixDexFileSize用于修复dex文件的大小、FixSHA1Header用于修复dex文件的SHA1头部信息、FixCheckSum用于修复dex文件的校验和、WriteToFile用于将数据写入文件。
- 主函数main中首先获取命令行参数,包括payload_dex_file、unshell.dex和output.dex。
- 打开payload_dex_file文件,并获取文件大小。
- 分配payload_size大小的内存,并将payload_dex_file文件中的数据读取到内存中。
- 对payload部分进行AES加密。
- 打开unshell.dex文件,并获取文件大小。
- 分配unshell_size大小的内存,并将unshell.dex文件中的数据读取到内存中。
- 创建output.dex文件,并分配output_dexfile_size大小的内存。
- 将unshell部分的数据复制到output_dexfile_buffer中。
- 将payload部分的数据复制到output_dexfile_buffer中。
- 在output_dexfile_buffer的末尾添加一个记录payload大小的字段。
- 修复output_dexfile_buffer的头部信息,包括修复文件大小、修复SHA1头部信息、修复校验和。
- 将output_dexfile_buffer中的数据写入output.dex文件。
- 释放内存。
- 返回0
原文地址: https://www.cveoy.top/t/topic/i1ue 著作权归作者所有。请勿转载和采集!