Soru:
windbg: Bir assembly dili talimatı veya talimat seti için işlem kodu nasıl belirlenir
dnraikes
2014-11-15 10:04:16 UTC
view on stackexchange narkive permalink

Bir halat zinciri kullanarak bir istismar gerçekleştirme görevi üzerinde çalışıyorum. Halatın arkasındaki temel bilgileri anlasam da,

  xchg eax, esp gibi talimatları nasıl dönüştüreceğimi bilmiyorum ; retn;  

işlem kodlarına.

Şunları kullanmayı denedim:

  0: 005> ainput> xchg eax, esp  

ancak verilen adres, programımdaki tamamen farklı bir talimata işaret ediyor. Bunun bir ekleme komutu olduğuna inanıyorum.

@yyVob,'ye teşekkürler, bu gerçekten ihtiyacım olan işlem kodlarını bulmak için windbg kullanımını temizlemeye yardımcı oldu.
Iki yanıtlar:
Jason Geffner
2014-11-15 22:07:41 UTC
view on stackexchange narkive permalink

RTA, işlem kodlarını veya anımsatıcıları girmenize olanak tanıyan ve bunları birinden diğerine dönüştüren, kullanımı kolay bir araçtır.

Aşağıdaki örnekte, girdim Sağda XCHG EAX, ESP ve RETN ve solda RTA 94 ve C3 üretti:

RTA

Öte yandan, WinDbg'yi gerçekten kullanmak istiyorsanız, aşağıdakileri yapmanız gerekir:

  1. Bir hedef yükleyin WinDbg'ye
  2. Giriş moduna girmek için a , Enter yazın
  3. Anımsatıcılarınızı yazın (örneğin, xchg eax , esp ), Enter
  4. Giriş modundan çıkmak için tekrar Enter tuşuna basın
  5. u , Yeni monte ettiğiniz şeyin sökülmesini göstermek için girin

Örnek için aşağıya bakın:

  0 : 000> a778e05a6 xchg eax, espxchg eax, esp778e05a7 0: 000> untdll! LdrVerifyImageMatchesChecksum + 0x633: 778e05a6 94 xchg eax, espcode>  
Lütfen hiçbir parametre olmadan "a" komutunu kullanmanın komut işaretçisindeki baytların üzerine yazmaya başlayacağını unutmayın. Özellikle montaj talimatları için boş alan oluşturmak için ".dvalloc" kullanın, ardından ayrılmış belleğin adresiyle "a" çağırın.
w s
2014-11-15 15:03:58 UTC
view on stackexchange narkive permalink

assembler'ı kullanabilirsiniz. Veya this gibi çevrimiçi assembler Veya Ida's Edit -> Patch programı -> Assemble submenu'yu Ida kullanıyorsanız kullanabilirsiniz.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...