polat2245 0 #1 Oluşturuldu: Ağustos 30, 2017 :00990E95 push eax ___:00990E96 lea ecx, [esp+15C0h+var_D30] ___:00990E9D push ecx ___:00990E9E call esi ; lstrcpy ___:00990EA0 push offset aOption_ini_0 ; "Option.Ini" ___:00990EA5 lea edx, [esp+15C8h+var_D38] ___:00990EAC push edx ___:00990EAD call edi ; lstrcat ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 ___:00990ED2 mov esi, GetPrivateProfileIntA ___:00990ED8 lea ecx, [esp+15CCh+var_D40] ___:00990EDF push ecx ; lpFileName ___:00990EE0 push ebp ; nDefault ___:00990EE1 push offset aLod_chr ; "LOD_Chr" ___:00990EE6 push offset aTexture_1 ; "Texture" ___:00990EEB call esi ; GetPrivateProfileIntA ___:00990EED test bl, bl ___:00990EEF mov edi, 1 ___:00990EF4 jz short loc_990EF8 arkadaşlar yardım edin lütfen Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #2 Ağustos 30, 2017 tarihinde gönderildi Alıntı :00990E95 push eax ___:00990E96 lea ecx, [esp+15C0h+var_D30] ___:00990E9D push ecx ___:00990E9E call esi ; lstrcpy ___:00990EA0 push offset aOption_ini_0 ; "Option.Ini" ___:00990EA5 lea edx, [esp+15C8h+var_D38] ___:00990EAC push edx ___:00990EAD call edi ; lstrcat ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 ___:00990ED2 mov esi, GetPrivateProfileIntA ___:00990ED8 lea ecx, [esp+15CCh+var_D40] ___:00990EDF push ecx ; lpFileName ___:00990EE0 push ebp ; nDefault ___:00990EE1 push offset aLod_chr ; "LOD_Chr" ___:00990EE6 push offset aTexture_1 ; "Texture" ___:00990EEB call esi ; GetPrivateProfileIntA ___:00990EED test bl, bl ___:00990EEF mov edi, 1 ___:00990EF4 jz short loc_990EF8 arkadaşlar yardım edin lütfen Kalın olarak işaretlediğim kısmı noplayabilirsin. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
polat2245 0 #3 Konu Sahibi Ağustos 30, 2017 tarihinde gönderildi Alıntı Kalın olarak işaretlediğim kısmı noplayabilirsin. dediğini yaptım oyuna multi soktum ancak bir sure sonra oyunlardan ilk açtığımı kapattı Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #4 Ağustos 30, 2017 tarihinde gönderildi Alıntı :00990E95 push eax ___:00990E96 lea ecx, [esp+15C0h+var_D30] ___:00990E9D push ecx ___:00990E9E call esi ; lstrcpy ___:00990EA0 push offset aOption_ini_0 ; "Option.Ini" ___:00990EA5 lea edx, [esp+15C8h+var_D38] ___:00990EAC push edx ___:00990EAD call edi ; lstrcat ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 ___:00990ED2 mov esi, GetPrivateProfileIntA ___:00990ED8 lea ecx, [esp+15CCh+var_D40] ___:00990EDF push ecx ; lpFileName ___:00990EE0 push ebp ; nDefault ___:00990EE1 push offset aLod_chr ; "LOD_Chr" ___:00990EE6 push offset aTexture_1 ; "Texture" ___:00990EEB call esi ; GetPrivateProfileIntA ___:00990EED test bl, bl ___:00990EEF mov edi, 1 ___:00990EF4 jz short loc_990EF8 arkadaşlar yardım edin lütfen Arkasında yatan mantık; Mutex ile alakalı kısım ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 Burada program CreateMutexA Win32 api fonksiyonunu çağırıyor. CreateMutexA fonksiyonu, programlar arası paylaşımlı bir mutex yaratmaya yarar. Aynı mutex adından iki tane yaratmak imkansızdır. HANDLE WINAPI CreateMutex( _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes, _In_ BOOL bInitialOwner, _In_opt_ LPCTSTR lpName ); burada baktığımızda üç parametre aldığını görüyoruz, ve bunlar sırasıyla ebp,ebp ve eax ile sağlanmış. ebp burda muhtemelen null. eax içerisinde ise mutex adını içeren stringe işaret eden bir adres mevcut. Bu fonksiyon çağrıldıktan sonra, geriye oluşan mutexe ait HANDLE döndürür. ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 Dönen handle, EAX'ın içerisinden ESP + 15CC + var_15B4 offsetindeki değişkene aktarılmış. ___:00990EAF mov eax, lpName ___:00990EB4 push eax ; lpName ___:00990EB5 push ebp ; bInitialOwner ___:00990EB6 push ebp ; lpMutexAttributes ___:00990EB7 call CreateMutexA ___:00990EBD mov [esp+15CCh+var_15B4], eax ___:00990EC1 call GetLastError ___:00990EC7 cmp eax, 0B7h ___:00990ECC jp loc_991B61 Burada ise, GetLastError fonksiyonu çağrılarak mutexin başarı ile yaratılıp yaratılmadığı kontrol ediliyor. GetLastError fonksiyonu, Win32 apisiniden programımız tarafından çağrılan en son fonksiyonunu hata durumunu getirir. Gelen hata değeri EAX registeri içerisine aktarılır. İkinci satırda ise, EAX registerinin değeri 0xB7 değeri ile karşılaştırılıyor. 0xB7 hata kodu, Windows API'sinde ERROR_ALREADY_EXISTS hata kodudur. Yani yaratılmaya çalışılan mutex zaten var ise, CMP EAX, 0xB7, sonuç registerini sıfır yapacaktır (eşit olduklarından dolayı) (hata kodları için buradan listenin devamına bakabilirsiniz) Ve son olarak, jp loc_991b61 kısmında flag registerinin even parity olması durumunda 991b61 adresine atla komutu işletiliyor. Karşılaştırma işlemi 0 ise, bu sonuç çift sayı olduğu için koşulu sağlıyor. (genelde jp yerine je bulunur fakat bu sürümde derleyici niçin jp koymayı tercih etmiş muamma) 991b61 adresinde knight online already running mesajını gösterip programı sonlandıran kod bloğu mevcut. yapacağımız şey programın bu kod bloğuna ulaşmasını engellemek, bunu ise basit bir şekilde JP komutunu NOP ile değiştirerek (no operation) sağlayabiliriz. İyi bayramlar. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #5 Ağustos 30, 2017 tarihinde gönderildi Alıntı dediğini yaptım oyuna multi soktum ancak bir sure sonra oyunlardan ilk açtığımı kapattı Demekki oyun periyodik olarak başka bir yerde daha kontrol sağlıyor. O noktayı da bulup kontrolü kaldırmalısın. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
polat2245 0 #6 Konu Sahibi Ağustos 30, 2017 tarihinde gönderildi Alıntı Demekki oyun periyodik olarak başka bir yerde daha kontrol sağlıyor. O noktayı da bulup kontrolü kaldırmalısın. bu siteden indirdiğim exe üzerinde oynuyorum diğer kontrolu nasıl bulabilirim acaba yukarıda fonksiyondan yola cıkarak birşey elde edebilirmiyim bu konularda yeniyim patch atmayı daha yeni ğrendim Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #7 Ağustos 30, 2017 tarihinde gönderildi Alıntı bu siteden indirdiğim exe üzerinde oynuyorum diğer kontrolu nasıl bulabilirim acaba yukarıda fonksiyondan yola cıkarak birşey elde edebilirmiyim bu konularda yeniyim patch atmayı daha yeni ğrendim Versiyon kaç, ve hangi exe (link) Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
polat2245 0 #8 Konu Sahibi Ağustos 30, 2017 tarihinde gönderildi Alıntı Versiyon kaç, ve hangi exe (link) bu linkhttps://www.kodevelopers.com/2000-paylasim/51-2083-knightonlineexe-unpack-amp-bypass.html Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
CENGLYY 161 #9 Ağustos 30, 2017 tarihinde gönderildi En kısa yol asm kullanmadan böyle ; Exe'ye bir kısa yol oluştur ve sonuna E03ED890-8E94-4B42-B1C5-3CDA401AA9C2 bunu ekle. USA_KnightOnline kullanıyordu eskiden şimdi yerini bu aldı Hex Editör ile her bi multi kullanıcağın için Knight OnLine Client yazısına 1 karakter bile eksik olmucak şekilde farklı olarak random numaralar ver , yardımcı olabilirsem ömden yaz. bu arada bunu öğreten faruk abiye tşkrler ^3:) Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #10 Ağustos 30, 2017 tarihinde gönderildi Alıntı bu linkhttps://www.kodevelopers.com/2000-paylasim/51-2083-knightonlineexe-unpack-amp-bypass.html Oyuna giriş yaptıktan (char select) sonra mı oluyor bu olay? Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
CENGLYY 161 #11 Ağustos 30, 2017 tarihinde gönderildi Her bi exe için ayrı kısayol , her bi exe için farklı title olucak bu şekilde dc gibi sorun yaşamazsın Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
polat2245 0 #12 Konu Sahibi Ağustos 30, 2017 tarihinde gönderildi Alıntı Oyuna giriş yaptıktan (char select) sonra mı oluyor bu olay? evet 2 charıda tamammen oyuna sokuyorum sonra birtanesinde oyun kapanıyor Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş