Ayat yang ditulis semula: Prinsipnya ialah menggunakan fungsi "mem hook" unicorn untuk membuang data tulen selepas dimuatkan ke dalam memori. Terdapat dua kaedah:
Kaedah 1: Gunakan getBackend()
untuk menyalin kaedah cangkuk memori Unicorn.
Kaedah 2: Gunakan traceCode()
untuk mengesan segmen memori yang ditentukan dan mengaitkan data memori.
Perhatikan bahawa getBackend
didorong oleh Unicorn
, jadi ia hanya boleh digunakan pada enjin unicorn dbg
Ambil getBackend
sebagai contoh
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);
Jawa
_ Copy_
Dengan cara ini anda boleh menyambung data memori pada masa yang ditetapkan.
Sudah tentu ia boleh dikapsulkan ke dalam GUI supaya anda boleh menyelesaikan kerja dengan hanya satu klik tetikus
Atas ialah kandungan terperinci kaedah penyulitan dan penghuraian rentetan java unidbg Ollvm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!