C# ile Tersine Muhendislik Ders 3 | Harmony Kullanimi

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Reverser
Katılım
15 Tem 2015
Mesajlar
297
Çözümler
2
Tepki puanı
356
Ödüller
10
10 HİZMET YILI
Evet en son altin anahtarimizi bulup key'i kirmaya calisacaktik.

Encoding.GetString'e hadi dnSpy uzerinden bakalim.
Yuklenen mscorlib'den, System.Text ad alani Encoding tipi GetString yontemini bulalim.



Karsimiza bu sekilde GetString yontemi cikacak. Burada onemli olan seyler byte[] parametresinin adi o da `bytes`
Gerekli bilgiye sahibiz, simdi hemen harmony'i projemize referans ekleyip islemimize baslayalim.



Harmony'i referans olarak ekledim.

Simdi harmony ad alanini kullanalim.


Hedef dosyamizi System.Reflection ad alaninda ki Assembly.LoadFile ile yukleyelim.


Bir harmony ornegi olusturalim. Id kismina coklu kullanimlarda essiz olacak sekilde bir id girebilirsiniz.

Uygulama uzerinde ki tum siniflardan patch yontemi yapacagiz.
Bu yuzden PatchAll yontemini kullanalim.

Statik bir sinif aciyoruz. Ve sinifimiz'a patchleyecegimiz yonteme uygun bir nitelik sagliyoruz.

Kisaca anlatirsak birinci alan, sinifin type'i, ikinci alan yontem, ucuncu alan ise parametrelerin type'i

Sinifimizin icerisine `Postfix` adinda bir yontem actim, Harmony de iki tane patch yontemi vardir. Bir tanesi Prefix, digeri ise Postfix.
Prefix orjinal kod calismadan once ki yeri kapsar, Postfix ise calistiktan sonra ki.
Bizim hedefimiz kodumuz islendikten sonra olacagi icin Postfix kullaniyoruz.



string __result olarak kullandigim sey ise harmony'de Postfix yonteminde kullanacaginiz bir ozellik. Yontemin ciktisini gosteriyor.

Eger yontemin ciktisini degistirmek isteseydik,

Basina ref eklememiz yetecekti.

Ikinci parametrede ki bytes ise dnSpy'dan aldigimiz parametre adi ile ayni olmak zorunda.


Yontemimizi bu sekilde gerceklestirdik.

Simdi dosyamizin entry pointini cagirmamiz gerekiyor.



Iste sonuc, hadi programimizi deneyelim



Dogru anahtarimiz Rexy'imis program bize bunu basarili bir sekilde dogru soylemis. Hedefimiz basarili
 
Reverser
Katılım
27 Ara 2017
Mesajlar
236
Çözümler
2
Tepki puanı
4,639
Ödüller
13
8 HİZMET YILI
C# ise bu Fiddler ile kırılır brom
Harmonye gerek yok.
 
Banlı Üye
Katılım
11 Tem 2017
Mesajlar
1,777
Çözümler
2
Tepki puanı
695
8 HİZMET YILI
Bu adamı Gördükçe Kodlamaya Atılmayı düşünüyom Çok İyi Ve Güzel Yapıyor
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...