qemu'ya yeni geldim ve bir tek modlu mod öykünmesine izin verdiğini okudum. Bu yararlıdır, çünkü fiziksel döngünün bazı adreslerini her döngüde boşaltmaya çalışıyorum. Ne yazık ki, qemu belgeleri çok kötü. Qemu monitöründen singlestep modunu nasıl etkinleştireceğimi biliyorum ama her adımda yürütmek istediğim kodu nereye koyacağımı bilmiyorum. Bunun hakkında herhangi bir bilgisi var mı?QEMU'da tek adımlı mod nasıl kullanılır?
cevap
Sen qemu için ::
--gdb tcp ile misafire takmak için
seçeneği gdb kullanın ve sonra
$ gdb <binary>
(gdb) symbol-file <sym file>
(gdb) target remote <host>:<port number>
(gdb) b <function>
(gdb) c
'b' kesme noktası ayarlar kullanabilirsiniz. 'n' '' 'ben koddan çıkmak için kullanılabilir. gdb modunda "info" Girme linke Yukarıdan
Ve iyi -singlestep modu var - nasıl emin değilim Bu işe yarıyor - belki de gdb için her adımda bir kırılma noktası yükseltir? –
Daha ayrıntılı bir QEMU GDB kurulum rehberi: https://stackoverflow.com/a/33203642/895245 –
http://www.xenproject.org/help/questions-and-answers/problem-with-vga-passthrough.html
QEMU için singlestep modları girmek için komut satırı seçeneğidir diğer bilgiler gösterecektir. do_singlestep (Monitör * mon, const QDict * QDict)
sadece basit bir bayrak "singlestep" set: Sonraki QEMU ( http://wiki.qemu.org/Download)için fonksiyon monitor.c kaynak kodunu elde etmektir. Not Bu, donanım singlestep öykünmesini öykünecek "singlestep_enabled" ile aynı değildir.
(global var vl.c dosyasında bildirilmiştir).
Şimdi targt-i386/translate.c tüm işlevleri içine bakmak - "singlestep" bayrak test edilir şunlardır:
if (singlestep) {
gen_jmp_im(pc_ptr - dc->cs_base);
gen_eob(dc);
break;
}
Bu ikili ya idam (veya "tercüme" olan yerdir daha kesin olması için) veya başka bir şekilde donanım istisnası yükseltilmiş ve işleyici (örneğin). Değiştirmek istediğiniz herhangi bir davranış varsa, belki burada deneyebilirsiniz?
@peter cevabı size yardımcı oldu mu? – stackoverflowwww
İlgili: https://reverseengineering.stackexchange.com/questions/4738/using-qemu-monitor-interface-to-extract-execution-traces-from-a-binary –