Umgeschriebener Satz: Das Prinzip besteht darin, die „Mem Hook“-Funktion von Unicorn zu verwenden, um die reinen Daten nach dem Laden in den Speicher zu sichern. Es gibt zwei Methoden:
Methode 1: Verwenden Sie getBackend()
, um die Memory-Hook-Methode von Unicorn zu kopieren. getBackend()
来复刻 Unicorn 的内存 hook 方法。
方法2: 利用 traceCode()
来 trace 指定内存段, hook 内存数据。
注意,getBackend
是用 Unicorn
来驱动的, 所以只能用在 dbg 的 unicorn 引擎上
以 getBackend
Methode 2: Verwenden Sie traceCode()
, um das angegebene Speichersegment zu verfolgen und die Speicherdaten einzubinden. Beachten Sie, dass getBackend
von Unicorn
gesteuert wird und daher nur auf der Unicorn-Engine von dbg
mitgetBackend Nehmen Sie zum Beispiel
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);
_ Copy_
Auf diese Weise können Sie die Speicherdaten zum angegebenen Zeitpunkt einbinden. AbgeleitetNatürlich kann es in eine GUI gekapselt werden, sodass Sie die Arbeit mit nur einem Mausklick abschließen können
Das obige ist der detaillierte Inhalt vonJava Unidbg Ollvm-String-Verschlüsselungs- und Parsing-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!