Merhaba değerli forum üyeleri bu konuda biraz kalıplardan çıkıp linux gnu ortamında C/C++ IDE nasıl kurulur, windows ortamına uygun exe nasıl üretilir bunlara değineceğim.
Ben bu anlatımda Linux Mint dağıtımını tercih edeceğim eğer dilerseniz aynı komutları Farklı ubuntu distrolarında yapabilirsiniz.
Öncelikle güncellemelerimizi kontrol edelim.
hemen ardından code blocks ide ortamını kuralım.
Şimdi ise windows ortamına uygun çalıştırılabilir dosyalar derlemek için mingw compiler indirelim.
Ben bu anlatımda Linux Mint dağıtımını tercih edeceğim eğer dilerseniz aynı komutları Farklı ubuntu distrolarında yapabilirsiniz.
Öncelikle güncellemelerimizi kontrol edelim.
Bash:
sudo apt update
hemen ardından code blocks ide ortamını kuralım.
Bash:
sudo apt install codeblocks -y
Şimdi ise windows ortamına uygun çalıştırılabilir dosyalar derlemek için mingw compiler indirelim.
Bash:
mingw-w64-common
CodeBlocks IDE yeni proje oluşturma
Öncelikle codeblocks'u başlatıp ana sayfadan create new project diyoruz
Hemen ardından ise projemizin template ayarlarını yapıyoruz burada geliştireceğiniz proje tipine göre seçimler yapmanız gerekmektedir. ben Projects kısımından console
Go diyorum buradan sonra ise sizden dosya isimi isteyecektir next next diyip projeyi açabilirsiniz.
Ve açılacak projede hazır olarak hello world örneğini görebilirsiniz yukarıdaki play tuşuna basarak derleme ve çalıştırma işlemini yapabilirsiniz.
Windows ortamına uygun çalıştırılabilir dosyalar üretmek.
Öncelikle projenin dizinine gidin file managera sağ tıklayıp open here terminal diyin ve aşağıdaki kodu kendinize uygun olacak biçimde düzenleyin.
not: burada --static parametresi dll hataları yaşamamanız için eklenmiştir dilerseniz silebilirsiniz.
Bash:
i686-w64-mingw32-g++ -o <exedosyasınınismi>.exe <kaynak kod dosyası ismi > --static
Derlediğimiz dosyayı windows çalıştırıyor mu?
Ida pro kullanarak exemize bakalım
Function window da bile insanın kafası yanıyor.
C++ dilini neden hacking-malware develops da kullanmalısınız?
Kod:
C++'i malware yazmak için tamamen mantıklı bir tercih. Neden mi? Çünkü ilk olarak, C++'te sana direkt olarak sistemin en derin köşelere dalma fırsatı sağlıyor. Hafızayı nasıl kullanacağını kendin belirle, istediğin şekilde manipüle edebilirsin. Heap, stack, pointer'lar… Bunları kullanarak anti-virüslerin bulamayacağı şeyler yapabilirsin.
Bir de bu, C++'yi derlenmiş bir dil olduğu için çalıştırması için ekstra bir bağımlılığına sahip olma ihtiyacın yok.NET gibi bir runtime değil, Python gibi interpreter gerekmez. Yazıyorsun, derliyorsun ve hedef sistemde çat diye çalıştırabiliyorsun. Yani taşıması kolay, iz bırakması zor.
Analiz edilmesi de ayrı bir issue. C++ ile kodlanmış bir içerik, IDA Pro, Ghidra gibi tool'lar ile analiz edilmeye çalışılırken direkt kafa karıştırıyor. Compiler optimizasyonları, inline assembly kullanımzı, polimorfik kodlar vs. derken çözmesi neredeyse işkenceye dönüşüyor. Üstüne/runtime şifreleme, self-modifying kod vs. eklerseniz, debug etmeye çalışıyorsa adamın kafasını yakarsın.
Windows’ta mı çalıştıracaksın? WinAPI’ye tam erişimin var. Linux’ta mı? Syscalls ile direkt çekirdeğe ulaşabilirsin. Debugger tespiti, sandBox atlatma, process injection, her şeyi yapabilirsin. Özellikle Process Hollowing, Reflective DLL Injection gibi tekniklerle kodunu başka bir sürecin içine yedirip gizleyebilirsin. Antivirüs? O zaten senin nerede olduğunu bile anlayamaz.
Bir de hız meselesini çözersin. Python veya betik dilleriyle yazdın, hız meselesi verirsin. C++ ile yazıyorsan direkt makine kodu çalıştırıldığı için hiçbir hız sorunu kalmaz. Özellikle saldırılar için bir şeyler çalıştırman istersen ya da düşük kaynaklı bir sistemde bazı şeyler çalıştırmak istersen, o zaman C++ aradığın şey.
Sonuç olarak, eğer gerçekten güçlü, hızlı ve tespit edilemeye zor bir şeyler yapmak istiyorsanız, C++ tam olarak en iyi seçenlerden biridir. Sistemle doğrudan konuştuğun zaman, tersine mühendisliği de neredeyse imkansız hâle getirebiliyorsunuz. İşe biraz da yaratıcılık kattığın zaman, ortaya gerçekten sorunlu şeyler çıkabilir
Son düzenleme:

