Reverse Engineering Giriş – 3
Reverse engineering serisinin 3.yazısı ile karşınızdayım. Bu yazımda önceki yazılarda anlatmış olduğum bilgileri kullanarak telsizimize programlamış olduğumuz ton ve kanal ayarlarını nasıl anlamlandırabileceğimizi anlatacağım. Önceki yazılarımdan bildiğiniz üzere orjinal yazılımı kullanarak küçük değişiklikler yaparak notepad++ ve compare eklentisi ile değişen yerleri inceleyeceğiz.
Üstteki resimde gördüğünüz Read Data satırının hemen alt kısmında yer alan veriler ton bilgilerimizi içeren veriler.
Verimiz ;
57 00 18 08 85 08 85
Bu veriyi inceleyecek olursak ilk kısımlarda gördükleriniz önceki yazılarımızdan hatırlayacağınız üzere okuduğumuz verinin tipini belirten kısımlar.
57 00 18 -> 1.Kanal için Tone Verisi
Tone Dec için Çözümlememiz : [5] + [4] => 0885 oluyor. Bu da 88.5 Tone anlamına geliyor.
Tone Enc için Çözümlememiz : [7] + [6] => 0885 oluyor. Bu da 88.5 Tone anlamına geliyor. Alma ve gönderme tonlarımı aynı ayarladığımdan dolayı her ikiside 88.5 olarak görünüyor şu an.
Tone verisini okuma telegramımız ise 52 00 18 08 oluyor bu durumda. Eski yazımızdan hatırlayacağınız üzere yukarıdaki verinin 3.kısmı kanal numarasını temsil ediyordu. 52 00 10 08 ile 1.kanal verisini okurken 52 00 18 08 ile 1.kanal ton verisini okuyoruz. Diğer kanalların ton okuma telegramları için bu linkte yer alan tablodan yararlanabilirsiniz.
Gelelim diğer ayarlara,
Bir kanal için
1.Scan Add
2.Wide/Narrow
3.TX Power
4.Busy Lock
5.Scramble
6.Compander
7.Send PTT ID
Ayarlarını yapabiliyoruz. Genelde elektronik data depolama işlemlerinde küçücük EEPROM’larda konfigürasyon tutmak için toplama işlemi kullanılıyor. (Tabii ki istisnalar mevcuttur ama en çok gözlemlediğim yöntem bu) Her konfigürasyonun bir değeri mevcut ve bu değerlerin true/false olmasına göre değerler toplanıp çıkarılarak 1 byte elde ediliyor. Bu veri sonrasında çözümleniyor. Tek tek deneyerek bu ayarların tamamının değerlerini tespit ettim. Bunlar,
1 2 3 4 5 6 7 |
<strong> {"Busy_Lock", 1}, {"Wide_Narrow", 4}, {"Tx_Power", 8}, {"Scan_Add", 16}, {"Scramble", 32}, {"Compander", 64}, {"PTT", 128}</strong> |
Yukarıda gördüğünüz .net core ile yazdığım konfigürasyon çözümleyici programda yer alan configDictionary.
Wide Narrow seçimi sırasında Wide seçilmiş ise 255 – Wide_Narrow Değeri
Tx Power Seçimi Sırasında Low Seçilmiş ise 255 – Tx Power değeri şeklinde işlem yapılıyor.
Şimdi basit bir konfigürasyon örneği yapalım.
Scan Add Özelliğimiz true 16
Wide/Narrow wide 4
TxPower high 8
BusyLock true 1
Şimdi yukarıda söylediğim kuralları unutmadan 255 değerinden çıkararak devam edelim.
255 – 16 (ScanAdd) = 239
239 – 1 (Buslock) = 238
238 – 4 (WideNarrow) = 234
Tx Power sadece low olduğunda çıkarma işlemine dahil oluyor. Bu yüzden onu işleme dahil etmedik. 234 değerinin Hex karşlığı ise EA olacaktır.
Şimdi ise BA değerini çözümleyelim. (Yukarıdakinden farklı bir değer seçtim anlaşılması açısından)
Benim bunu çözümlemek için kullandığım yöntem tüm konfigürasyon değerleri birbirinden farklı olduğu için (yani aynı anda 2 adet 4 değeri giremez konfig byte toplamına)
255 – BA(186) değeri = 69
Sonrasında ise en büyük değerden başlayarak kalan değerin içinde olup olmadığına bakıyoruz.
Yani 69 – 128(PTT Konfig Değeri) > 0 mı ?
Değil.
69-64(Compander)>0 mı ?
Evet. O zaman Compander Konfig ayarlanmış demektir.
69-64 = 5 kaldı. Devam ediyoruz 0’a ulaşana kadar.
5-WideNarrow > 0 mı ? evet. Toplama katılınca Wide oluyordu.
5-4=1
1-Busylock >0 mı ? Evet.
O zaman busylock da ayarlanmış demektir. Konfiğimiz aşağıdaki gibi oluyor. TX power işleme dahil olmamış ise High olarak ayarlanmış demektir default olarak.
Evet arkadaşlar tersine mühendislik konusunda yazdığım Zastone V77 telsizimizin çözümlenmesi konusundaki 3. yazımı okudunuz.
73 de TA2MVX.
Hocam merhaba ben Kadir TUNÇ
Arduino ethernet asp.net localhost tan led yakıyorum ama bu işlemi uzaktan nasıl kontrol edebilirim .Yardımcı Olurmusunuz?
Kadir Selamlar ,
Modeminden dışarıya bir port açacaksın. Örneğin 8666 olsun. Bu porta gelen istekleri de arduino üzerinde dinlediğin porta yönlendireceksin. -modemde-
Sonrasında ise led yak,södür isteklerini dış ip adresinin 8666 numaralı portuna atacaksın.
Umarım açıklayıcı olmuştur.
İyi çalışmalar.