android敏感字符串加密,[原创]开源llvm字符串加密pass
在未初始化数据段(bss)解密数据.ollvm yag00的实现是解密到栈上,Armariris,Hikari都是在数据段原地还原.如对字符串数组的处理static const char * const const_string_array[] = {"aaa", "bbb", "ccc"};我处理后static char dec_aaa[4], dec_bbb[4], dec_ccc[4]; /
在未初始化数据段(bss)解密数据.ollvm yag00的实现是解密到栈上,Armariris,Hikari都是在数据段原地还原.如对字符串数组的处理
static const char * const const_string_array[] = {"aaa", "bbb", "ccc"};
我处理后
static char dec_aaa[4], dec_bbb[4], dec_ccc[4]; // 解密后的"aaa", "bbb", "ccc"
static char *dec_const_string_array[3]; // 解密后的const_string_array
static void __global_variable_initializer_const_string_array(char *dec_const_string_array[])
{
// ...
// 解密"aaa", "bbb", "ccc"到dec_aaa, dec_bbb, dec_ccc
// 开始初始化dec_const_string_array
dec_const_string_array[0] = dec_aaa;
dec_const_string_array[1] = dec_bbb;
dec_const_string_array[2] = dec_ccc;
}
对结构体数组处理类似.
更多推荐
所有评论(0)