İPUCU

Tersine Mühendislik Reverse Engineering ve Cracking ile ilgili dökümanları bulabileceğiniz bölüm.

Seçenekler

Obfuscation Nedir? Derin Anlatım

27-01-2019 12:05
#1
ilyn - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2019
Nereden:
<iostream>
Mesajlar:
133
Teşekkür (Etti):
13
Teşekkür (Aldı):
34
Konular:
8
Obfuscation nedir?
Obfuscation bir kodu bir sınıfı hatta bir projeyi "decompiler"lardan saklamak için kullanılan bir tekniktir. Şöyle düşünün, bir eşya yada herhangi bir şey, birisinden saklamak için battaniyenin altına koyarsınız. İşte bu battaniye sanal ortamda obfuscation olarak adlandırılır.

Nasıl çalışır?
Bir yapboz düşünün, parçalanmamış halde. Ve o yapbozu bir kutuda hayal edin. İşte o sizin temiz projeniz. Tüm parçalar yerinde her şey bir düzen içinde. Yapbozdan sıkıldınız ve onu dağıttınız ve kutuya dağınık halde koydunuz. İşte o obfuscationlu halidir. Yapboz parçalarını bir sınıf(class) olarak hayal edin. Kutu sizin namespace'iniz olsun. Kutuyu rafa kaldırdınız. Bir süre sonra tekrardan canınız sıkıldı ve yapboz yapmak istiyosunuz. Gördünüz ki yapboz dağınık. Yapbozu tekrardan düzenli bir hale getirdiniz. Buna da "deobfuscation" denilir.

Şimdi bundan yola çıkarak, bir windows projeniz var ve bunun içine bir şifre koydunuz. Ve onu herhangi bir araç yardımıyla obfuscate' yaptınız. Her şey tamam. Kodunuz karışık ve neredeyse anlaşılamaz. Peki bilgisayar bunu nasıl yapıyor? Yapboz örneğinden yola çıkarak her parçayı bir class olarak varsayalım. Obfuscator 1 classı bilgisayarın kaldırabileceği maksimum sayıya bölebilir. Resimli olarak şu şekilde:

ctor/cctor class constructor demektir. Adı üstünde parçaya ayrılmış sınıfları tekrardan düzeltir. İşte düğümün çözüldüğü nokta. Bu classın nasıl işlediğini çözerseniz bu düğümüde çözersiniz. de4dot gibi araçlar tam da bunu kullanır.


Seviyeleri nelerdir?
1.Seviye: Kolay
Bu seviyedeki gizlenmiş bir kodu çözmek neredeyse çocuk oyuncağıdır. Bu tür obfuscatorlar classları sadece ayırmakla yetinirler. Tıpkı bu resimdeki gibi:



2.Seviye: Orta
Bu seviyedeki gizlenmiş kodu ancak bir araç yardımıyla çözebilirsiniz.
Örneğin x adında bir int değişkeni tanımladınız, bunun gizli halı artık <rastgele karakterler> değişkeni olur. Kısacası tanımladığınız bütün değişkenlerin stringlerin vb. şeylerin adı artık rastgele karakterlerden oluşur. Buna da "Junk" adı verilir.
Bu seviyeye örnek olarak şu resim gösterilebilir:



Ve burada işin içine yeni birşey dahil oluyor. (Resimde pembe ile gösterdiğim)Trash classlar Türkçe olarak "Çöp sınıf" olarak adlandırabiliriz. Peki nedir bu çöp sınıf? ctor/cctor bu sınıfı yok sayar. Bu sınıfların içinde rastgele kodlar yazılıdır.

3.Seviye: Zor
Bu seviyede neredeyse çözülmesi imkansız dır. Classların içinde class olur. Parçalı classlar birbirleri ile kendi aralarında parçalanıp referans yaparlar. Karakterler artık uni-code olur (Çin, Hint, vb. alfabeler ile). Sınıflar o kadar çok olur ki de4dot gibi araçlar artık düğümü bile çözemez hale gelir.


Şunu unutmayın, hiçbir şey imkansız değildir. Sadece zaman alır.

Size birşey öğretebildi isem ne mutlu bana.

Tüm konu ve resimler tarafımca yapılmıştır.

27-01-2019 12:10
#2
WhiteRed - ait Kullanıcı Resmi (Avatar)
Bilgi Teknolojileri Ekibi
Üyelik tarihi:
01/2017
Nereden:
Balkes
Yaş:
18
Mesajlar:
3.245
Teşekkür (Etti):
332
Teşekkür (Aldı):
679
Konular:
239
Ellerine sağlık dostum. Güzel anlatım ve güzel bir konu olmuş
Kullanıcı İmzası
SolidStar


ilyn Teşekkür etti.
27-01-2019 14:49
#3
wh0ismrrobot - ait Kullanıcı Resmi (Avatar)
Stajyer Sosyal Medya Yöneticisi
Üyelik tarihi:
01/2019
Nereden:
İstanbul
Mesajlar:
1.307
Teşekkür (Etti):
21
Teşekkür (Aldı):
205
Konular:
33
Ellerine Sağlık.
Yararlı Bir Anlatım Olmuş.
Kullanıcı İmzası
Hello EVILCORP

We Are F S O C I E T Y

01110111 01101000 00110000 01101001 01110011 01101101 01110010 01110010 01101111 01100010 01101111 01110100

ilyn Teşekkür etti.
27-01-2019 19:45
#4
Raizel1337 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
07/2016
Nereden:
127.0.0.1
Mesajlar:
59
Teşekkür (Etti):
6
Teşekkür (Aldı):
6
Konular:
4
Harika bir kaynak olmuş, tebrik ederim.
Kullanıcı İmzası
mov eax, ax
ilyn Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı