Phrase réécrite : Le principe est d'utiliser la fonction "mem hook" de Unicorn pour vider les données pures une fois chargées en mémoire. Il existe deux méthodes :
Méthode 1 : Utilisez getBackend()
pour copier la méthode de hook de mémoire de Unicorn. getBackend()
来复刻 Unicorn 的内存 hook 方法。
方法2: 利用 traceCode()
来 trace 指定内存段, hook 内存数据。
注意,getBackend
是用 Unicorn
来驱动的, 所以只能用在 dbg 的 unicorn 引擎上
以 getBackend
Méthode 2 : utilisez traceCode()
pour tracer le segment de mémoire spécifié et accrocher les données de mémoire. Notez que getBackend
est piloté par Unicorn
, il ne peut donc être utilisé que sur le moteur unicorn de dbg
withgetBackend Prenons par exemple
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
_ Copy_
De cette façon, vous pouvez accrocher les données de la mémoire à l'heure spécifiée. DérivéBien sûr, il peut être encapsulé dans une interface graphique afin que vous puissiez terminer le travail d'un simple clic de souris
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!