Öncelikle söyleyim ki Deneyim sahibi olmadığım hiç bir konuya müdahil olmam ve sen nereden bileceksin ki yazda görelim gibi ihtamlarda bulunmam. Hele Bir PHP'cinin mysql pdo dan başka bir şey konusunda deneyimi olmayan PHP'ci arkadaşların beni bir şey bilmezlikle suçlayan sözlerine ithafen; Daha önce yazdım, Kendime Özel onlarca VPN sunucum var. Yazılımsal bilgisi olmayan kişiler gözünde büyütüyor biraz sanki. Aktif çalışan chrome eklentim dahi var

Ek olarak söylemek isterimki C#,Python yada c++ Hello Worldden başka karekod almaktan, konsol uygulaması üzerinden show yapmaya çalışan tiplerden hiç bir zaman olmadım. Uzun yıllardan beri gelen WİNDOWS APİ bilgime dayanarak ve Sistem seviyesi bir yazılım geliştirici olarak söylüyorumki NDNIS Driver yazmayı bilmeyip, sistemin boot döngüsüne özel low-level uygulama yazmayı bilmeyene bu işlemler tabiki zor gelecek 50 Bin TL yapamayacağı bir projeye isteyecek ve yarı yolda projeyi iptal edecekler.
How to create VPN software yazıp Google'a iki tane üç tane şeyi görüp konunun kalabalıklaştırılması şahsi görüşümce hoş değil. Burada sadece kafasından kurup ben yaparım demek de yanlış şahsımca. Türkiye'deki PHP severler, C#cı arkadaşlar ve Python Konsolcu arkadaşlara ithafen söylemek isterimki;
Sevgilerle;;
Nasıl VPN Yazılımı Geliştirilir Onu size Anlatayım Ben
Süre EN FAZLA 10 gün.
Freelancera ödenecek en fazla bütçe. 2000 TL
Kullanılacak Diller
ANSI-C (Sadece C, C++ DEĞİL)
Arayüz İçin Node.JS(Electron)
Kullanılacak Teknolojiler:
OPENVPN / IPSEC Sunucuları (Digitalocean yada google Cloud tercihdir).
Electron
Windows 10 Driver Development Kit.
Yapımı:
Native C ile windows kütüphanesinı KULLANMADAN, ntdll.h kütüphanesi ile NDNIS Driver(Ağ Driveri)
Visual Studio'nun vermiş olduğu template ile yazılır.
Driver Release Modda Build edilir ve sc.exe ile sisteme yazılır.. Boot da çalışması için konfig yapılır
Tüm uygulamaların internet trafiğini , kendi vpn exe niz hariç kendi driver'ınız üzerinden geçireceksiniz. Ki kendinizi sonsuz döngüye sokmayın. EN baba 100 satır kod tutar.
Adım 2:
Git üzerinden openvpn ve ipsec vpn yazılımı ana kodları klonlanır. Cmake ile build edilip header ve oluşan .lib dosyaları ayrı bir klasöre alınır.
Node.JS express ile bir api sunucusu hazırlanır ve tüm vpn serverlarının ip adresleri ve konfig dosyaları buraya bağlanır.
Şimdi..
Bir C projesi açılır (.dll) ve (C++ YOK!)
öncelikli olarak
windows.h ntdll.h user32.h yukarıda build edilen tüm header dosyaalrı include edilir.
WinHTTP kütüphanesi yada socket farketmez. Api sunucusuna istek atar ve api sunucusu ülkelere ait vpn serverların bilgilerini encrypt edip JSON olarak dönderir
Hafızada tutulması iyidir.
Gelen veriye göre OPENVPN yada IPSEC headerlarını kullanarak kendi içerisinde bağlantı işlemleri sağlanır. Admin yetkisi ile. nasıl alınacağı bir sonraki aşamada..
Genel başlantı kontrol kodları yazılır NDNIS driver' ile iletişime geçilir ve Driver aktif hale gelir...
Node.JS ile electron ile bir proje oluşturulur ve isteğe göre bir template çıkar.
Node.JS api sunucusuna iletişime geçer ve sunucu bilgilerini çeker ki kullanıcı hangi ülkeye bağlanacağını seçsin.
IPC ile seçilen veri Node.JS uygulaması içerisinde başka bir kütüphanede olan DllInclude ile oluşturduğunuz dll çağrılır ve dll'nin çağrılma komutu olarak ülke adresi verilir. Yukarıdaki Gelen veriye göre diye başlayan kısımda gelen veri burası..
ADIM 3:
Node.jS'nin DLL'yi admin olarak çağırması gerekiyor. Oturup virüs yazmıyoruz bypass gerekli değil. Uygulama kendisini yeniden admin yetkisi isteği ile başlatır.
Siz onaylarsınız. Dll de OPENVPN yada IPSEC olarak aldığı veriyi NDNIS Driver'a gönderir ve tünelleme işlemi başlar 2-3 saniye
Sonra şak bir bildirim Bağlandınız..
Kaba taslak bu kadardır. Arada olan eklsikleri söylemek istemedim
Not: Ben burada bana muhalefet olan, Sistem seviyesi konusunda Shutdown yapmaktan başka bir şey bilmeyen ve bana yanlış tavırlar sunanlar için yazıyorum.
Bu konu dışındaki hiç bir kişi sözlerime alınmasın Lütfen