Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
infiltrate

Launcher'siz KnightOnline.exe başlatma hakkında.

Önerilen Mesajlar

Kendimi RCE konularında geliştirmek için böyle denemeler yapıyorum.Unpacking işinde iyi olmadığım için Launcher üzerinde denemelere başladım.KnightOnline.exe'yi nasıl çalıştırdığına bakmak için ShellExecute ve CreateProcess api'lerine breakpoint koyarak baktım.


HINSTANCE ShellExecute(
_In_opt_ HWND hwnd,
_In_opt_ LPCTSTR lpOperation,
_In_ LPCTSTR lpFile,
_In_opt_ LPCTSTR lpParameters,
_In_opt_ LPCTSTR lpDirectory,
_In_ INT nShowCmd
);


Run ettiğimde ShellExecute'deki breakpointte duruyor.

d758qr.png

Stack'de bu parametreleri görüyorum.Aynı parametreler ile C++'da yazdığım bir console app'de ShellExecute api'sine bu parametreleri geçiyorum fakat "Launcherden çalıştırın" hatası veriyor.

LPCTSTR lpParameters parametresine geçilen 14600 parametresi sürekli değişiyor.Acaba bu yüzden mi bu hatayı alıyorum?Yeni olduğum için o değerin nerede/nasıl üretildiğini takip edemiyorum.

@ PENTAGRAM @ DEVILCRAFT @ OzkanOzdemir @ EveryBodyFool
(Etiketlemem sıkıntı ise; k.bakmayın.)

Yardımlar için şimdiden teşekkürler.

İletiyi paylaş


Link to post
Sitelerde Paylaş

Evet, o yüzden alıyorsun. Yapman gereken şey, 246E148 konumuna memory write bp koyup, hangi fonksiyon(lar) bu adresteki veriyi değiştiriyor onu takip etmelisin. Bulduğunda, parametrenin neye göre üretildiğini fonksiyondan çıkartabilirsin. Tahminimce zaman bazlı bir değer olabilir.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Evet, o yüzden alıyorsun. Yapman gereken şey, 246E148 konumuna memory write bp koyup, hangi fonksiyon(lar) bu adresteki veriyi değiştiriyor onu takip etmelisin. Bulduğunda, parametrenin neye göre üretildiğini fonksiyondan çıkartabilirsin. Tahminimce zaman bazlı bir değer olabilir.


memory write bp koysam bile değer üretildiği için bir işlevi olmuyor.yeniden debug etsem o adress değişiyor.Ne yapabilirim başka?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Örnek: ShellExecute('KnightOnline.exe E03ED890-8E94-4B42-B1C5-3CDA401AA9C2')

Yaparak başlatabilirsin


Doğru cevap, fakat ben neden kendim bulamadım bunu:)Herhalde KnightOnline.exe'nin içinde mevcut bu.Ben Launcherin nasıl call ettiğine bakıp, call ediyorum.Fakat KnightOnline.exe'nin içinde onu call eden process'in doğruluğunu kontrol eden başka yapılar var sanırım.

İletiyi paylaş


Link to post
Sitelerde Paylaş
6405inciw9223482.png

Unpack edilmiş bir KnightOnline.exe'yi static analiz için açtım ve gördüğüm kadarıyla je knightonline.9ADA9A ile kontrol ediliyor.Eğer eşit değil ise Launcher'den çalıştırın hatası veriyor.Fakat static analiz ile bu değere ulaşmam zor gibi.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Misafir
Bu konu kapalıdır ama konuya cevap yazmaya yetkiniz var görünüyor.

×
×
  • Yeni Oluştur...