Selamlar,
Açıkcası bir sürü trıvırı okumadan bile şu kodları uygulayın yeter
ingilizcesi daha iyi olan biri warsa çevirip yorum olarak yazsın ben konuyla degiştiririm ama genel olarak kodlar aşagıdakilerden ibaret
oldyydbg ile ebenezer.exeye uygulayın
İlk olarak, ben kendimi tüm bu kodu gerekir ediyorum dedim. Eğer olduğu gibi, bu büyük bir şans çünkü özelliği olmayan olan bir sunucu dosyalar existant bunu yapmıyorum's Yani,.
Ben (CUser:: Saldırı saldırı işlevi ne olduğunu kontrol yaptı ()) burada ölümlerin işler bulun. Bu bulgu üzerine, başka bir işleve - CUser:: GoldChange Arama bulundu ().
Bu bir tek bulgu, yani bir göz vardı ki.
Fonksiyonun başında Right at, bu bulabilirsiniz:
'C + + çeviri, bu biraz şuna benzer:
KODU
(struct/class-> var == 1)
(
CUser:: DeathAnnouncement ();
return;
)
Bu struct/class-> var hep 1 gibi görünüyor vardır - bu yüzden ölüm duyuru ve döner geri CUser için: gösterir: Saldırı nerede orada şeyler ele bitiyor.
Bu kodu hemen altına, bu temelde için yorumlar çok ilginç kod bir dizi bakın:
KODU
if (bölge> = 3 & & dilimi! = 111 & & dilimi! = 21 & & dilimi! = 30 & & dilimi! = 32 & & dilimi! = 33 & & dilimi! = 48)
(
if (SID <1500 & & sid = 0) / / Normal soketi kontrol numarası
(
... kurban yapısı's almak ...
CUser:: DeathAnnouncement ();
... altın alışverişi ...
)
)
Tüm bu adı olarak bu kodu durak olan kod yukarıdaki tetiklemeyi ve dönüyordu!
Şimdi, dürüst olacaksınız, bu değişken, ama hiçbir yan benim testleri gelen etkiler, ve her şey olarak çalışır ne gördüm kontrol etmek için durdurmak didn't; oyuncular katil ile altın% 50 kaybediyor verilmiş olan bu (% 10% 40 ve başka ulus vergisine) gidiyorum.
.. Bunu zaten.
Yamayı oldukça basittir.
Biz koşullu atlama değiştirin:
Koşulsuz atlama ile:
Yani, bu artık struct/class- atlamak için ne rahatsız will not> var (ne olursa olsun bu gerçek vardır - benim tahminim bu şey, ana sınıfı (CEbenezerDlg olarak) noktaları ise; belki bu INI hatta bazı yapılandırma seçenek 1 bulundu yapıyor's set. Her iki yöntemde, stuff çalışır, bu yüzden mutluyum (kadar başka) kanıtlanmış.
Eğer yeteri kadar OllyDbg rahat yapmıyorsanız, (veya güncellenen ECE için) beklemek bir onaltılık editörü kullanabilirsiniz.
0x000B566D ofset gidin ve 0x75 ile 0xEB değiştirin.
Basit!
Not: osmanx Ardream in yakında çıkacak ölüm bildirileri için bir yama geliştirdi.
PPS: Bu CUser bir fonksiyonudur:: Saldırı bu adı değil FUNC; "CUser:: BattleZoneGoldGain". Ama bu ne denir gereken bir duygu vardır çevresinde olan bazı kontrol gereken bir kontrol's ... ya şekilde, bu yöntemi iyi bir tek baytlık yama için çalışıyor - veya o işlevi gerçekten ihtiyaç duyduğu özellik. Birisi gerçekten bir savaş sırasında meydana çıkışı kontrol etmelisiniz!
Açıkcası bir sürü trıvırı okumadan bile şu kodları uygulayın yeter
İlk olarak, ben kendimi tüm bu kodu gerekir ediyorum dedim. Eğer olduğu gibi, bu büyük bir şans çünkü özelliği olmayan olan bir sunucu dosyalar existant bunu yapmıyorum's Yani,.
Ben (CUser:: Saldırı saldırı işlevi ne olduğunu kontrol yaptı ()) burada ölümlerin işler bulun. Bu bulgu üzerine, başka bir işleve - CUser:: GoldChange Arama bulundu ().
Bu bir tek bulgu, yani bir göz vardı ki.
Fonksiyonun başında Right at, bu bulabilirsiniz:
Kod:
004B5660 |. 8B87 48870000 MOV EAX, DWORD PTR DS: [EDI 8748]
004B5666 |. 80B8 28880300> CMP BYTE PTR DS: [EAX 38828], 1
004B566D 75 0D JNZ KISA Ebenezer.004B567C
004B566F |. FF75 08 PUSH DWORD PTR SS: [ebp push 8]
004B5672 |. E8 66CDF4FF ÇAĞRI Ebenezer.004023DD
004B5677 |. E9 CA040000 JMP Ebenezer.004B5B46
'C + + çeviri, bu biraz şuna benzer:
KODU
(struct/class-> var == 1)
(
CUser:: DeathAnnouncement ();
return;
)
Bu struct/class-> var hep 1 gibi görünüyor vardır - bu yüzden ölüm duyuru ve döner geri CUser için: gösterir: Saldırı nerede orada şeyler ele bitiyor.
Bu kodu hemen altına, bu temelde için yorumlar çok ilginç kod bir dizi bakın:
KODU
if (bölge> = 3 & & dilimi! = 111 & & dilimi! = 21 & & dilimi! = 30 & & dilimi! = 32 & & dilimi! = 33 & & dilimi! = 48)
(
if (SID <1500 & & sid = 0) / / Normal soketi kontrol numarası
(
... kurban yapısı's almak ...
CUser:: DeathAnnouncement ();
... altın alışverişi ...
)
)
Tüm bu adı olarak bu kodu durak olan kod yukarıdaki tetiklemeyi ve dönüyordu!
Şimdi, dürüst olacaksınız, bu değişken, ama hiçbir yan benim testleri gelen etkiler, ve her şey olarak çalışır ne gördüm kontrol etmek için durdurmak didn't; oyuncular katil ile altın% 50 kaybediyor verilmiş olan bu (% 10% 40 ve başka ulus vergisine) gidiyorum.
.. Bunu zaten.
Yamayı oldukça basittir.
Biz koşullu atlama değiştirin:
Kod:
004B566D 75 0D JNZ KISA 004B567C
Kod:
004B566D EB 0D JMP KISA 004B567C
Yani, bu artık struct/class- atlamak için ne rahatsız will not> var (ne olursa olsun bu gerçek vardır - benim tahminim bu şey, ana sınıfı (CEbenezerDlg olarak) noktaları ise; belki bu INI hatta bazı yapılandırma seçenek 1 bulundu yapıyor's set. Her iki yöntemde, stuff çalışır, bu yüzden mutluyum (kadar başka) kanıtlanmış.
Eğer yeteri kadar OllyDbg rahat yapmıyorsanız, (veya güncellenen ECE için) beklemek bir onaltılık editörü kullanabilirsiniz.
0x000B566D ofset gidin ve 0x75 ile 0xEB değiştirin.
Basit!
Not: osmanx Ardream in yakında çıkacak ölüm bildirileri için bir yama geliştirdi.
PPS: Bu CUser bir fonksiyonudur:: Saldırı bu adı değil FUNC; "CUser:: BattleZoneGoldGain". Ama bu ne denir gereken bir duygu vardır çevresinde olan bazı kontrol gereken bir kontrol's ... ya şekilde, bu yöntemi iyi bir tek baytlık yama için çalışıyor - veya o işlevi gerçekten ihtiyaç duyduğu özellik. Birisi gerçekten bir savaş sırasında meydana çıkışı kontrol etmelisiniz!
Moderatör tarafında düzenlendi: