2021-01-30

抖音数据采集教程,unicorn 解决 OLLVM 字符串混淆通用方法

抖音数据采集教程,unicorn 解决 OLLVM 字符串混淆通用方法

短视频、直播数据实时采集接口,请查看文档: TiToData


免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。


虽然是通用方法,但是要了解 so 加载流程、汇编基础、java基础才可以使用哦~

这里用的基于 unicorn 的 androidEmu

AndroidNativeEmu 在面对没有加壳的 so 还是挺好用的,不过遇到加壳的 so,就会力不从心的,需要 dbg 才行。


解决字符串混淆思路,其实和 frida 读取混淆字符串方法一样,在内存中字符串是被解密状态的,所以在内存中拿就可以了, 而且 Unicorn 提供了 unicorn.UC_HOOK_MEM_WRITE 来 hook 操作内存中的数据

干货代码如下:

import loggingimport sysimport osimport unicornimport structfrom androidemu.emulator import Emulatorsys.path.append(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))logging.basicConfig( stream=sys.stdout, level=logging.DEBUG, format="%(asctime)s %(levelname)7s %(name)34s | %(message)s")logger = logging.getLogger(__name__)emulator = Emulator(vfp_inst_set=True) # 初始化模拟器# 字符串解密so_file = "test/test.so"modify_map = {} # 接收字典def UC_HOOK_MEM_WRITE(mu, _type, address, size, _value, user_data): byte_array = struct.pack("I", value)[:size] modify_map[address] = byte_array return# 加载预设 soemulator.load_library("example_binaries/libdl.so", do_init=False)emulator.load_library("example_binaries/libc.so", do_init=False)emulator.load_library("example_binaries/libstdc++.so", do_init=False)emulator.load_library("example_binaries/libm.so", do_init=False)lib_module = emulator.load_library(so_file, do_init=True) # do_init 需要设置为 trueemulator.mu.hook_add(unicorn.UC_HOOK_MEM_WRITE, UC_HOOK_MEM_WRITE) # 准备 UC_HOOK_MEM_WRITE 回调解决字符串加密"""读出代码,并将被加密的字符串修改回去"""with open(so_file, 'rb') as f: content = f.read()print(modify_map)for i in modify_map: value = modify_map[i] base = lib_module.base # 加载基质 if base <= i <= (base + lib_module.size): # 利用加载地址判断  offset = i - base - 0x1000 # 并不是连续加载,是文件中的偏移  content = content[:offset] + value + content[offset + len(value):]down_file = so_file + ".fix"with open(down_file, 'wb') as df: df.write(content) print('写出完毕', down_file)

**
修改 so_file = so文件地址 运行后就会导出解密后的 so
注意事项:

  • 有的时候so有交叉调用,无法直接解密,需要hook住调用函数,来解决异常








原文转载:http://www.shaoqun.com/a/521205.html

跨境电商:https://www.ikjzd.com/

淘粉吧官网:https://www.ikjzd.com/w/1725.html

crowd:https://www.ikjzd.com/w/880


抖音数据采集教程,unicorn解决OLLVM字符串混淆通用方法短视频、直播数据实时采集接口,请查看文档:TiToData免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。虽然是通用方法,但是要了解so加载流程、汇编基础、java基础才可以使用哦~这里用的基于unicorn的androidEmuAndroidNativeEmu在面对没有加壳的so还是挺好用的,不过遇到加壳的so,
杨颜:杨颜
沃尔码:沃尔码
速卖通开店流程详解:速卖通开店流程详解
预测:你眼中的巨头亚马逊5年后会是什么样?:预测:你眼中的巨头亚马逊5年后会是什么样?
亚马逊FBA卖家销售税指南(完结篇):亚马逊FBA卖家销售税指南(完结篇)

No comments:

Post a Comment