Merhaba,
Bugünkü konu (larımız) Apple, Mac OS Mojave, Mac OS Catalina , iPhone cihazı , Apple Store da olan uygulama yani IPA dosyası ve onun hack edilmesi ile paralı Apple developer olmak ve en sonunda HAVELSAN DİYALOG ile ilgili biraz eleştiri ve yorum…
Apple ile ilgili bu konular da nereden çıktı diyebilirsiniz.. Video Konferans ve görüntülü görüşme ile aynı anda (evet aynı anda) chat IM yani yazışma yapıp dosya paylaşma ile ilgili dev gibi bir proje içinde işte bunları da yaşadım..
Sonra HAVELSAN a sıra gelecek merak etmeyin….
Bu video konferans ile ilgili ARGE yaparken bir çok yazılımı inceleyip paramparça ettim bazen de edemeyip bu tür yan yollara sapıp sonunda amacıma ulaştım.. Neden böyle çünkü bir yazılımın size görüneni var bir de alt tarafta kullandığı teknoloji.. Bazen siz bir yapıyı kendiniz kodlayarak özgün yapıyorsunuz bazan da yazılımları ve sistemleri kırarak veya ilgili ama teknoloji açısından pek işin içinde olmayan bir yetkilinin ağzından kaçırdığı sözlerle anında ne yaptıklarını görüyorsunuz.. Bunları harmanlayıp uyguluyorsunuz..
İşte onlardan bir zaman … SIP çalışan ve bir SIP server a bağlanan IOS yani iPhone da çalışan bir uygulamaya ihtiyacım oldu.. Amacım onu alıp kodlarını kırmak içini değiştirip kendi sistemim üzerinde test etmek..
Android tarafta APK dosyaları var.. Onu cihaza yükleriz aslında Google Play store dan indirip ya da bir firma veya kişi ya da kendimiz geliştirip yükleriz.. Apple da aynı.. Orada IPA dosyaları var.. Ama APK gibi kolayca bulunmuyor hatta bulunmuyor maalesef.. ilk hedef bu.. Sonra neler oluyor neler..
Geçen yıl makinamı kendim upgrade etmiş ve makale olarak da paylaşmıştım.. Yani SSD lerim süper.. Hemen VMWARE Pro 15.5 üzerinde Mac Os Mojave kurdum.. Aman kurulum da neler yaşattı neler..
Öncelikle VMWARE unlocker patch yazılımını yükleyeceksiniz.. Eğer eski vmware Workstation 11 olsaydı bu patch yüklendikten sonra bize Mac OS X seçeneği gelecek ama 10.10 Mac OS a kadar destek var.. Böyle devam edip Mojave versionunu yüklerseniz BOOT ETMİYOR haberiniz olsun.. Hemen vmware pro 15 e upgrade edip unlocker patch uygulayın göreceksiniz mac os 10.16 ya kadar destekliyor.. O zaman yükledikten sonra boot da eder..
Elimizde Mac OS Mojave var ISO image ı var (Sonra Catalina ya geçtim ! mecburen) ..
Ancak sonra Mac OS kur deyince bu hasarli image dedi.. O zaman dil sectikten sonra mac os kur demeden once utilities den terminali (Terminal uygulamasını ) secip shell den date 121819002016 yazip sonra devam ediyoruz..
Bu defa da diski gormedi o zaman yeni VM yapıp diski ayırdım tek disk yaptım.. Ama sorun bu degil gelen menude mac os kur yerine disk utility den partition yapmak lazim eski usul yani.. Ancak trick su: Orada gorunen 40GB lik mesela diskini secip ustten sil diyeceksin.. Sonra disk utilities I kapatip mac os yukleye devam diyeceksin. Ben ilk defa yapıyorum nereden bileyim.. öğreniyoruz işte..
Sonra her şey OK ve sıra Xcode 10.2.1 e geldi.. Yükledim ama elimdeki bazı yazılımlarda hatalar çıkınca 11.3 e upgrade ettim.. Sorun kalmadı..
Elimdeki kaynak kodu olan yazılımı derliyorum simulator de çalışıyor ama wifi, icloud vs vs özellikleri olduğundan Apple developer free hesabım olduğundan gerçek cihazı bağladığımda türlü türlü hatalar veriyor bunları kullanmama izin vermiyor vs vs… Bir de paralı Apple developer mı olacağım işim gücüm yok.. Bir sene için 700 TL ye yakın para ödemek lazım.. Google da bu bir defa ve 25 dolar dı.. Neyse bir de üye olmak yani free account dan paralıya geçmek için two way authentication yapman lazım..Onun içinde en az bir apple cihazın olması lazım.. Mac OS kurdum ya o şartı sağlıyorum ve Mac OS içinden iCloud a login yaptığım an two way auth özelliğini aktif etme sorusuna da OK diyorum bitiriyorum.. Tabii henüz karar vermedim eğer bu aşamayı geçemezsem ikinci aşama da birinin apple store da ki SIP client uygulamasını alıp IPA sını kıracağım ve kodları vb değiştirip yeninde İMZALAYACAĞIM (free accountum- parasiz apple geliştirici hesabi yani yeter mi buna acaba ? ) ve cihaza yükleyip bakacağım…
Xcode da sorunu halledemedim.. Bu defa IPA araklamam lazım..
Bakın o işi de nasıl yapıyoruz… Mac OS a Apple Configurator 2 yüklüyoruz.. Sonra bir iPhone cihazımızı bağlıyoruz bağlantı OK ise (Vmware de olduğumuzdan cihazı takınca seçenek çıkacak ve vmware üzerindeki Mac OS da kullanacağım seçeneğini seçin) .. Sonra cihaza çift tıkla sağ yukarıdan Apps I seç ve ekranda cihazda kurulu tüm programları göreceksiniz.. O arada cihaz üzerinde Apple Store a giriyorum ve o SIP client uygulamasını indiriyorum ama iPhone a .. Bağlıyım ya Mac da Apple configurator ile bakın neler oluyor.. Mac ın Library disini altındaki bir dizine bu uygulamanın IPA sı da geliyor.. Alıp bir kenara hemen kopyalıyorum yoksa süresi var silinebilir..
Bu IPA ne.. örneğin WhatsApp.IPA .. alıp iPhone da çift tıkla üzerine veya Apple configurator ekranında cihaza da bağlı iken yukarıdan Add I seçip gelen pencereden Mac dan al seçeneğini seçip bizim Mac içindeki bir dizinden bu IPA dosyasını seçip direkt cihaza yüklüyoruz.. sanırım anlaşıldı..
Bu IPA aynı Android de ki APK gibi kardeş bunlar kardeş..
IPA nın bir yedeğini alıyorum.. Sonra bu IPA nın IPA olan uzantısını ZIP yapıyorum.. Evet bu aslında bir zip dosyası arkadaşlar.. Sonra üzerine çift tıklayıp otomatik bir dizine çıkarıyorum.. İçine girip inceleyin..
Çok derine dalmadan.. ki dalarım ama bununla ilgili yalan yanlış doğru veya yarı doğru bir çok bilgi var internette.. Amacım IPA yı böyle açıp içinde bazı yerleri veya dosyaları değiştirip tekrar imzalayıp IPA yapıp cihaza yükleyip çalıştırmak..
Olay şu: Önce ZIP I açtığımız folder da Payload diye bir dizin de göreceğiz.. Bunun altında örneğin whatsapp.app olur ve bunu ancak sağ tıklayıp show contents dersek açılır trick bu ona göre.. ve bu açılırsa aynı folder gibi maşallah içinde varsa Framework ler ve/veya Plugin ler olabilir..
Sonra eğer en az bir defa xcode u çalıştırırsak ve bir proje açarsak makina da bizim developer olarak keychain denen imza veya imzalarımız saklanır.. Onu görmek için shell de :
security find-identity –p codesigning –v
yazarız hepsi gelir.. Bu imzalar önemli..
Yukarıda Payload altında örneğin whatsapp.app yi show contents yapmıştık.. içinde bir sürü dosya ve dizin var.. _CodeSignature dizinlerinin tümünü silmemiz lazım.. Plugins ler de ki ve framework dizinlerdeki tüm framework lerde ki de dahil..
Sonra bize imzalama için embedded.mobileprovision denilen bize ait vir profile bu ve çok lazım.. Free account ile de oluşturuluyor.. Basit bir xcode iphone uygulaması oluşturup derleyin ilgili dizinlerde bunu bulup kopyalayın uygun yere.. Eğer paralı isek onu aynı zamanda Apple sitesinden indiriyoruz..
Olay şu IPA yı yeniden oluşturmadan eski imzaları silip özel işlemlerden geçirip kendi imzamızla imzalayacağız ve sonra tekrar hepsini tek bir ZIP yapıp bunu da rename yapıp IPA yapacağız…
Uygulamanın kendisi için ve varsa plugin yani appex için entitlement oluşturmalıyız.. Özel komutu var bunların.. codesign isimli bir mac os tool yazılımı ilgili parametrelerle bunu oluşturuyor.. Aynı codesign ile benzer şekilde sonra kendi imzamızla da imzalıyoruz.. Önce Framework ler sonra apex yani plugin ler ve en son .app ve bu sıra çok önemli..
Ve sonuçta imzalar değiştiriliyor ve IPA hazır.. Yüklüyorum .. Çalışmıyor.. altından giriyorum üstünden çıkıyorum olmuyor.. İşi fena öğreniyorum ama iş olmuyor ne gam !..
2 taraftan da Apple gel buraya öde diyor.. Ödüyorum : ) .. Birden her şey oluyor..
Bu arada kullandığım iPhone cihazı güncelleme yapılınca bendeki Mojave ve Xcode 10.x.y de işe yaramaz oluyor arada bahsedemedim..Mac OS Catalina ve Xcode 11.3 yükleyeceğiz.. Sakın upgrade seçeneğini seçmeyin gidin mac os safari den apple store a oradan get yapın install edin.. Bu upgrade 2 defa benim GB larımı yedi.. Üstelik bu Elma şirketi her defasında o değişti bunu yüklemen lazım bu çıktı o geçersiz diye bu Mac ci ve elmacıları nasıl da kandırıyor anlatamam.. Biz de diğer tarafta sonuçta kandırılıyoruz farklı yöntemlerle ama olsun.. Her defasında öyle böyle değil 8 GB yükleme yapıyor .. Microsoft olsa dahi ağlardı hakikaten…
Neyse sonunda her zaman ki gibi istediklerimi yapıyorum.. Hem Android Java ve Android Mobil telefon hem de iPhone cihaz ile tüm sistemimi test etmiş oluyorum ve her şey mükemmel çalışıyor.. Video Konferans benden sorulur…
Gelelim HAVELSAN ve Video Konferans ürünü Diyalog a .. Açıkça Genel Müdürünün bir paylaşımına bende hazır var alt yapı yardımı yapın gelip bunu çalıştırayım diye yazdım bana email ini verdi ben de yazdım.. Biraz önce bir TV ye bu diyalog hakkındaki bilgileri anlatan röportajına rastladım.. Ben arada söylediklerini dikkatle dinledim.. Bakın ne anladım :
Bu Milli ve Yerli diyor ama değil.. Zaten olsa ne olur olma sa ne olur öyle demese daha iyi olur.. Dünya ölçeğinde ve veya son teknoloji demek daha iyi.. Diğeri bizim “ezikliğimizi” gösteriyor..
Diyor ki Genel Müdür: Biz Türkiye de aradık ama hiç işimize yarayan bir şey göremedik ve iş ortaklarımızla çalışıp bir açık kaynak kodlu uygulamayı aldık ve 2.5 sene de değiştirip istediklerimizi ekledik düzelttik neyse.. Nerede Milli şimdi.. Öyle demese bir şey demeyeceğim.. Burası meclisten dışarı : “Elin adamına akşama kadar sövüyorsun bunlar bizi bölüyor kıskanıyor diyorsun ve işine geldiğinde don kişot gibi bunlara saldırıyorsun ama sonra bunların hem de hiç korkmadan açık seçik kodlarıyla koyduğu yazılımları alıp bunları ben yaptım milli ve yerli diyorsun !”.. HAVELSAN harika bir şirket çalışanları da çok çok değerli.. Böyle demeseniz ne olur yanii.. Aldık değiştirip daha iyisini son teknoloji olarak yaptık.. Peki madem öyle onun da açık kaynak kodunu varsa cesaretiniz siz internete koyun… Yapamazsınız.. Almayı biliyoruz değiştirip bizim demeyi de çok iyi beceriyoruz maşallah..
Peki başka ne dedi.. 2.5 sene de yapmışlar.. Ben tahminde bulunayım bunun teknolojisi WebRTC ki benim en uzman olduğum konu ve 5 yıl kadar önce hem Havelsan gibi web tabanlı tarafını hem de onlarda olmayan (mobil de çalışıyor diyorlar ama sanıyorum web tabanlı yani mobil browser dan çalışıyor native falan değil diye düşünüyorum. Aksi varsa bana yazsınlar..) native mobil tarafını da yazmıştım.. XMPP ile çalışıyor diyor.. Yok doğru ama xmpp burada garanti signaling için yani web yazılımı xmpp protokolü ile bir xmpp server a bağlanıyor ve bir anda bir odayı diyelim aynı socket yazılımı gibi dinliyor ve bunun adına subscribe deniyor ki biri aradığı anda orada bir kod ki siz bunu tayin ediyosunuz kodlamayla- bunu görünce beni arıyor deyip (signaling) p2p webrtc ile bağlanıyor birbirine alın size görüntülü görüşme.. XMPP orada bu işe yarıyor.. Hani desem mi bilmiyorum ama sanki JITSI ( Java tabanlı ) açık kaynak kodlu ve en çok alıntı yapılan yazılıma benziyor diyeceğim ama kendileri açıklasınlar…
2.5 sene de kusuruma bakmasınlar en az 2 savaş gemisine savaş yazılımı yazarlar bir de Yüksek Seçim Kuruluna yazılım yaparlar.. Ben bu kadar eleştireyim.. Ama eğer yazılımları JITSI ise kesin görüşme kayıtları olayında zorluk yaşamışlardır.. Hani ne bileyim bir konferans kaydı yapılırken aynı anda başka konferanslar aynı server üzerinde kayıt yapamıyor gibi bazı zorluklar ..
Genel Müdür bir de isteyenlere kurulumdan bahsediyor işte bulut lazım ama kendi veri merkezlerine de kurarız ama şöyle ama böyle..
Ben de ki yazılımlara son teknoloji diyorum dünya ölçeğinde… Bulut da dahil bulutsuz yerlerde de rekor sürede 2-3 günde gerekirse kurar yaparız…
Kalın sağlıcakla …
Selcuk Celik