Kötü amaçlı yazılım yazma

Başlatan z, 16 Mart 2012, 11:36:55

z

Kötü amaçlı bir yazılım yazmam gerekiyor. Kötü amaçlı ama aslında iyi amaçlı.

Bilgisayar ağımızdaki vatandaşlardan birisi yasak olduğu halde bilgi işlemdeki kankası sayesinde makinesine oyun programı kurdurmuş.
Benim bu oyunu tamamen çalışmaz hale getirmek değil de hiç olmazsa dilediğim zamanlarda bloke etme amacım var.

Sistemde sınırlı seviyede admin yetkilerim var (lokal makinalar bazında, ağ bazında değil). Kumpasa getirmek istediğim kişi üst düzey olduğu için oyunu sil vs diyemiyorum.

Önerileriniz neler?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

elektromagma

exe dosyasının yedeğini alın.

Orjinal exe dosyasını açıp son satırdaki karakteri değiştirip kayıt edin. Bu bir seçenek olabilir.

----------------------

Dosyanın içerisinde dll var ise onu silin. Buda bir seçenek olabilir.
Anadolu MakerSpace http://www.anadolums.com/

z

Programı çalışırken bloke etmem gerekiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ogunduru

Oyunun internet üzerinden oynanan bir cins oyun mu, yoksa PC de local olarak oynanan bir oyun olduğunu söylerseniz belki yardımım dokunabilir. Oyunun adını biliyorsanız daha iyi olur.
Matematik Mühendisi bir hobi elektronikçi

z

Oyunun internet ayağı var. Normalde sistem üzerindeki internet politikaları da sıkı sıkıya kontrol altında. Fakat bilgi işlemdeki kankası, makina bazında Firewall, websens gibi uygulamalar için de özel imtiyazlar tanımış.

İşim zor ama deneyeceğim.  Uzaktan bağlanıp birşeyler yapmaya çalışmak zor sistem izin vermez. Detaylara hakim değilim. Üstelik bu durumda sisteme atak vs nedenlerle suçlu bulunurum.

Benim yapacağım daha doğrusu aklımda olan yapıda, ağda bir klasöre bir dosya attığımda vatandaşın makinası bu dosyayı gördümü oyun programını sekteye uğratsın. Hatta oyuna hiç karışmasın PC %50 yavaşlasın. Dosyayı ağdan kaldırdığımda makina normale dönsün. Bu yöntem işimi fazlasıyla görür.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

NecroCapo

Eğer sadece ağdaki bir başka programı sonlandırmak isterseniz :

Windowsta taskkill isimli bir komut var. Örneğin, açık olan bir not defteri uygulamasını kapatmak için :

taskkill /IM notepad.exe    komutu not defterini kapatmaya çalışıyor. Fakat değişiklikleri kaydedeyim diye soruyor kapatmadan önce.
taskkill /F /IM notepad.exe komutu ile de, bu gibi soruları ortadan kaldırıp /F ile direkt olarak kapanmaya Force ediyoruz.

taskkill /? komutu ile daha fazla detaya ulaşabilirsiniz. Anladığım kadarıyla ağdaki bir bilgisayarın kullanıcı adı ve şifresini biliyorsanız, oradaki programı da kill edebiliyorsunuz.

TASKKILL /S sistem /U kullanıcıadı /P parola /FI "IMAGENAME eq not*"

ogunduru

İnternet üzerinden çalışan her yazılım, karşı taraftaki sunucu ile en az bir bir TCP portu ve/veya bir UDP portu üzerinden sürekli haberleşir. Oyun programları da böyle.

Uğraşmalı bir yolunuz var, ama madem kafaya koydunuz bu işi size şöyle bir tavsiyede bulunabilirim. Programcılık konusu ile uğraştığınızı varsayarak anlatıyorum.

1) Bu oyunu sistemde kimsenin olmadığı bir saatte (iş yerinde olmuyorsa başka bir yerde de olur) kendiniz biraz oynayarak, hangi porttan iletişim kurduğunu tespit etmeniz gerek. Oyun aktif halde iken, internette free olarak bulabileceğiniz port dinleme yazılımlarından birini kullanarak, bilgisayarın o anda hangi portlarının meşgul olduğunu anlamanız gerekecek. Karşınıza çıkacak port listesi kalabalık olabilir. Bu listeden oyun programının kullandığı portları ayırmak için, testi yaparken kullandığınız işletim sisteminin (XP, win7 veya neyse) kullandığı portu ayırmanız gerekecek. İşletim sisteminin kullandığı portları google'dan arayark kolayca bulabilirsiniz. Yine bu testi yaparken sisteminizde firewall ve benzeri soket kullanan bir yazılım varsa bunları da geçici olarak kapatırsanız işiniz kolaylaşır.

2) Oyunun kullandığı en az bir portu (TCP olursa daha iyi olur) tespit edince, geriye portu meşgul edecek basit bir soket yazılımı yapmak kalıyor.

3) Bu yazılım küçük bir interval (100-150 ms) ile çalışan bir döngü içinde, bulduğunuz port ile bağlantı kurmaya çalışan bir uygulama olmalı. Ancak bu uygulamayı, oyun oynayan vatandaştan önce çalıştırmanız gerekebilir. Bunun için de bir timer'a bağlamanız gerekli.

Bu uygulamayı çalıştırabilmeniz için, sistem admini tarafından kullanıcı bazında policy tanımları veya firewall üzerinden kontrol olmaması gerekli. Sistemdeki kullanıcı yetki düzeyiniz belirleyici olacak.
Matematik Mühendisi bir hobi elektronikçi

bigbey

engellemeye çalıştığınız bilgisayarın  istediğiniz IP no'sunu ağda başka bir bilgisayara atasanız. çakışma olacağı için oyun oynanamayabilir.
denemek lazım.. :o
TA6R

SpeedyX

Ben olsam arkada dk da bir çalışan bir servis yazardım, window handle ile oyunun açık olduğunu anlayınca servis aktif hale gelir ve pislik yapardı, deliler gibi recursive hesap yaparak bilgisayarı kasabilir yada o oyunu kapatabilir vs... Oyun kapalıysa yine dk da bir kontrol edip kendini yok eder.

muhendisbey

.bat uzantılı direk programı kapatmaya yönelik bir yazılım olabilir. Yada internet üzerinden ise sunucusunu firewall ile bloke ederek bağlantısını koparabilirsiniz.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

z

Alıntı yapılan: SpeedyX - 16 Mart 2012, 17:49:40
Ben olsam arkada dk da bir çalışan bir servis yazardım, window handle ile oyunun açık olduğunu anlayınca servis aktif hale gelir ve pislik yapardı, deliler gibi recursive hesap yaparak bilgisayarı kasabilir yada o oyunu kapatabilir vs... Oyun kapalıysa yine dk da bir kontrol edip kendini yok eder.

window handle ile oyunun açık olduğunu anlama kısmı için delphi örnek varmı?

Yazacağım bu kötü yazılımı otomatik olarak nasıl başlatabilirim ve asıl soru nasıl gizlerim?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Burak B

1- Karşınızdaki insanların işletim sistemi bilgi düzeyi nedir ?
2- Kullanılan işletim sistemi nedir ?
3- Makineye erişim düzeyiniz tam olarak nedir ?
  a- Yazılım kurma ve denetleme yetkiniz var mı ?
  b- Registry erişim ve değişiklik yetkiniz var mı ?

Makineye bir program yerleştirebilecek yetkiniz olduğunu varsayarak basit birkaç yöntemi yüzeysel olarak yazıyorum.

a-  Bir memory loader yazabilirsiniz. Bu tip loaderlar her sistem açılışında aktif edilmelidir. En temel yöntemle oyun uygulaması FindWindow apisi ile tespit edilir ve handle elde edilir. Akabinde istenen zulüm uygulama üzerinde gerçekleştirilebilir. Bunu threadler ile temin edebilirsiniz. Sistemi daha az uygulamayı daha çok yoracaktır. Bu tip loader sistemde heryerde saklanabilir.

b-  Bir application loader yazılabilir. Direk oyun exe' si ile loader değiştirilir. Loader görüntü olarak ikonuna kadar oyun uygulaması gibi olmalıdır. Ana oyun uygulaması yeniden adlandırılır ve loader tarafından çalıştırılacak şekilde güzel bir isim verilir. Mesela jpeglib.dll. Kullanıcı oyun diye tıkladığında loader çalışır düzenlemeleri yapar, sonrada asıl oyunu çalıştırıp handle değerini elde eder. Sonrada pusuya yatar. Devamında istediğiniz zulmü programlayabilirsiniz.

c- Bir injector ile (Genel API hooking yöntemlerini araştırmalısınız.) winsock izlemeye alınır. Buna yataklık etmesi için (a) veya (b) deki yöntemleri kullanabileceğiniz gibi otomatik çalıştırılacak herhangi bir yöntemide programlayabilirsiniz. Uygulama internet bağlantısı kurmaya çalıştığında kullanıcıya ve uygulamaya istediğiniz zulmü yapabilirsiniz. Internet filitre uygulamaları böyle yapar sürücüyü ve/veya API' yi hook eder. Yani araya girip ahkam keser. Detaylarına girmiyorum.

d- Basit bir yöntem olarak Windows yerel ilkelerinde uygulamaları bloklamak mümkündür. Eğer yetkiniz varsa oyun exe sini bu listeye eklerseniz. Windows onu çalıştırmak istemeyecek ve kullanıcıya engellendi diyecektir. Bu noktada bilgi işleminizin bilgisi v.s. işin içine giriyor.


  Ayrıca bu yöntemlerin bazılar AV programları tarafından saldırgan yöntemler olarak algılanabilir. AV programı varsa bunuda göz önünde bulundurun. AV uygulamaları açısından bir A uygulamasının bir B uygulamasının işine karışması riskli bir işlem olarak görünebilir. Yukarıda çok yüzeysel olarak bahsettiğim yöntemler oyunlar için yapılan hile uygulamalarında sıklıkla kullanılır.

Askerdeyken yazıcıydım ve Diablo oynardım komutan geldiğinde MASM ile yazdığım bir windows uygulaması sayesinde tek tuşla diablo penceresini saklar ve ikonunu da taskbarda word ikonuna dönüştürürdüm.

Öncelikle söz konusu uygulamayı edinip bir inceleyin. Hakkında fikir sahibi olun.

Kolay gelsin.

"... a healthy dose of paranoia leads to better systems." Jack Ganssle

izzethoca

ben ce sen arkadaşına birşeyler yapmak istiyorsun.  Yetkiliye söyle o halletsin. Bir işletme de kimse iş korkusu yüznden yasakları delemez.

SpeedyX

Window handle kolay da başka fikir daha geldi aklıma.

Bu oyunun masaüstü iconu vs vardır tıklayınca açan, ordaki adresi değiştirip benzer addaki başka exe yi çalıştırmasını sağlayabilirsin, böylece senin exe çalışır ve o oyunu da açar. böylece task manager dan gizlemiş olursun.  Yada oyun izin veriyorsa asıl oyunun exe sine senin exe yi ekleyebilirsin, ozaman hiç birşey değiştirmeye gerek yok. Böyle programlara exejoiner denir ( http://www.file-joiner.com/ )
Olmazsa biryerlerde eskiden yazdığım window handle kullanan trojan kaynak kodlarından örnek yaparım. FindWindow ile de çok rahat bir mesele. Tüm pencereleri listeletip oyunun window adını gördükten sonra özellikle onu arayan program yapılır...

muhendisbey

şimdi aklıma geldi. bir bat dosyası oluşturup kısayol olarak koyarsın. Bat dosyası oyunu açar lakin bazı önemli hizmetleri durdurur (açıldığında yazıcı, internet hatta sistem saati gibi hizmetler durur, durduktan sonra oyun açılır.). Oyun kapansa dahi hizmetler başlamaz. Bir süre sonra toplum kanısıdır: bilgisayarda virüs var der, oyunu bırakır.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.