unidbg Ollvm 字符串加密解析
重写后的句子: 原理在于使用unicorn的“mem hook”功能,在so加载到内存后将纯净的数据转储出来。有两种方法:
核心方法
方法1: 利用
getbackend()来复刻 unicorn 的内存 hook 方法。方法2: 利用
traceCode()来 trace 指定内存段, hook 内存数据。
注意,getBackend 是用 Unicorn 来驱动的, 所以只能用在 dbg 的 unicorn 引擎上<br>以 getBackend 为例
emulator.getBackend().hook_add_new(new WriteHook() {
@Override
public void hook(Backend backend, long address, int size, long value, Object user) {
System.out.println(Long.toHexString(address) + "----" + size + "----" + value);
byte[] bytes = long2Bytes(value, size);
modifyMap.put(address, bytes);
}
}, 0, Long.MAX_VALUE, null);Java<br>_ 复制_<br>这样就可以 hook 在指定时刻hook内存数据了。
衍生
当然可以加以封装一个 GUI 这样就可以鼠标点点就可以完成工作了<br>
<br>


立即学习“Java免费学习笔记(深入)”;











