Tersine Kod Mühendisliği

Başlatan Reverser, 03 Kasım 2014 - 20:34:00

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Reverser

Alıntı yapılan: Amenofis - 11 Kasım 2014 - 10:24:00
Alıntı yapılan: mr.ozhan - 08 Kasım 2014 - 01:26:15
@Reverser Gönderdiğin kodlar doğru. Benim merak etiğim bu olayın işleyişi nasıldır acaba. Kodları sen mi tahmin ediyorsun yoksa bi programla mı ?

Decompiler denen bir program kullanılıyor. Bu programlar önce kodu disassembly eder sonra da asm kodundan "tahmini" bir C kodu üretir. Fakat arkadaş yeterince tecrübeli ise programı sadece disassembly eder, tahmini kaynak kodunu kendisi çözebilir.

Eğer programı debug modda derlediyseniz kaynak kodunuzdaki semboller dosyaya ekleneceğinden tersleme işlemi çok daha basit olur. Yok eğer -O3 gibi bir optimizasyon ile derlediyseniz derleyici kaynak kodla alakasız bir çıktı üretebilir. Bu durumda tersleme zor olur. Birde kodunuzu düzenli değil de spagetti kod diye tabir edilen düzensiz şekilde yazıyorsanız tersleyip algoritmanızı çalmak zorlaşır.

Bu işlemi önlemek için de çeşitli araçlar var ama hiçbiri tam çözüm değil * tabi ki. Mesela obfuscator denilen araçlarla binary dosyanızı karıştırabilirsiniz. Ya da upx ile sıkıştırabilirsiniz. Ama her halukarda bellekte programın orjinali görünecektir.

Dediğiniz gibi farklı yöntemler mevcut özellikle offsetler üzerinden fonksiyonları bulmak oldukça uğraştırmakta. Basit bir disassembler kullanıyorum sadece decompiler kullanmıyorum. Bu işin zevki burada zaten.. Tek satır C kodu için bazen 10 satır asm okumak zorunda kalıyorsunuz.

Alıntı yapılan: ekremsenturk - 11 Kasım 2014 - 11:49:52
@revers takma isimli arkadaşımız, sanırım internet'ten benzer bir örnek bulup, kopyalayıp yapıştırıyordu.

Programın nasıl çalıştığını bilmeden nasıl kopyala yapıştır yapayım :) ? Bu iş için yeteri kadar ASM ve C bilgim var..

XFCE ROCKS !
Powered by Thunar & XFWM4



plazma

O kısımı ben okuduğumda soru olarak anlıyorum bence bakış açısı bu sen öyle görmek istersen öyledir, uslübte terbiyesiz bir durum yok bence ama tercih meselesi siz öyle o an yorumlamış olabilirsiniz algı farklı olabilir tabikide...

berkaye

Merhaba , bu dropbox'ta paylaştığınız dosyaları indirdim bende yapmak için fakat dosya ayarlarında "allow executing .." kutusunu işaretlememe rağmen hiç bir tepki vermiyor açmaya çalıştığımda, anlayamadım neden böyle ?

ekremsenturk

Uçbirimden çalıştırmalısın. Dosyanın home dizininde olduğunu varsayarak, aşağıdaki örneği kullanabilirsin.
./çalıştırlacak_dosyanın_adı

berkaye

Alıntı yapılan: ekremsenturk - 17 Kasım 2014 - 17:20:17
Uçbirimden çalıştırmalısın. Dosyanın home dizininde olduğunu varsayarak, aşağıdaki örneği kullanabilirsin.
./çalıştırlacak_dosyanın_adı

Teşekkür ederim bende uğraşıyorum açmak için, kullanıcı arayüzü var sandım :)

7hr33l3t73r

Zor bir asm kodu paylastim herhalde :)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

ahmetvural32

Alıntı yapılan: heartsmagic - 04 Kasım 2014 - 05:34:17
Alıntı yapılan: Reverser - 04 Kasım 2014 - 01:16:20
Şimdi farkettim ayrıca üslubunuzu beğenmedim.

Mimiklerin görünmediği ve karşı tarafın da kullanmadığı zamanlarda, şu sanal dünyada yazılan şeyleri azarlar mahiyette anlamak yerine "Kendi başlığını düzenlemede bir sıkıntı mı yaşıyorsun?" şeklinde anlamak en doğru yaklaşımdır zannımca.
Bende kendi başlığımı düzeltemiyorum :D
printf("Bismillah Her Hayrın Başıdır");

Reverser

Alıntı yapılan: Z3r0nU11 - 29 Aralık 2014 - 16:08:50
Zor bir asm kodu paylastim herhalde :)

Çok zor random sayı türettirmece :)

XFCE ROCKS !
Powered by Thunar & XFWM4



heartsmagic

Alıntı yapılan: ahmetvural32 - 29 Aralık 2014 - 16:22:21
Alıntı yapılan: heartsmagic - 04 Kasım 2014 - 05:34:17
Alıntı yapılan: Reverser - 04 Kasım 2014 - 01:16:20
Şimdi farkettim ayrıca üslubunuzu beğenmedim.

Mimiklerin görünmediği ve karşı tarafın da kullanmadığı zamanlarda, şu sanal dünyada yazılan şeyleri azarlar mahiyette anlamak yerine "Kendi başlığını düzenlemede bir sıkıntı mı yaşıyorsun?" şeklinde anlamak en doğru yaklaşımdır zannımca.
Bende kendi başlığımı düzeltemiyorum :D

Hangi başlığı? Düzenleyememe nedenin nedir?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

ahmetvural32

:d


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 30 Aralık 2014 - 14:47:26

Alıntı yapılan: heartsmagic - 30 Aralık 2014 - 00:56:57
Alıntı yapılan: ahmetvural32 - 29 Aralık 2014 - 16:22:21
Alıntı yapılan: heartsmagic - 04 Kasım 2014 - 05:34:17
Alıntı yapılan: Reverser - 04 Kasım 2014 - 01:16:20
Şimdi farkettim ayrıca üslubunuzu beğenmedim.

Mimiklerin görünmediği ve karşı tarafın da kullanmadığı zamanlarda, şu sanal dünyada yazılan şeyleri azarlar mahiyette anlamak yerine "Kendi başlığını düzenlemede bir sıkıntı mı yaşıyorsun?" şeklinde anlamak en doğru yaklaşımdır zannımca.
Bende kendi başlığımı düzeltemiyorum :D

Hangi başlığı? Düzenleyememe nedenin nedir?
Ubuntuda C yazamamak başlığını
printf("Bismillah Her Hayrın Başıdır");

Reverser

Konuyu canlandırmak amacıyla, ilerleyen saatlere doğru bir binary paylaşacağım daha doğrusu kolaydan zora doğru birden çok binary olacak içinde şifrelenmiş halde bir text formatı barındıracak ya da bir tür koruma önlemi olacak ve bu korumayı aşmaya çalışacağız bu konuyla oyalanmak isteyenler için eğitici olacağı kanısındayım :)

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

Debugger olarak Gdb'mi kullanıyorsunuz acaba? Yoksa kullandığınız Hata Ayıklayıcı IDE'nin içinde mi geliyor?
# 28065

Reverser

Alıntı yapılan: kaansef - 31 Aralık 2014 - 16:12:28
Debugger olarak Gdb'mi kullanıyorsunuz acaba? Yoksa kullandığınız Hata Ayıklayıcı IDE'nin içinde mi geliyor?

Ağırlıklı olarak GDB ve hex editor kullanıyorum.

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

Teşekkür ederim @Reverser. Peki GDB için önerebileceğiniz Türkçe kaynak var mı? Belgeler'de gördüm ama eski diye bakmadım. Eğer bir çok şey değiştiyse eskiyi öğrenmenin bir anlamı yok çünkü. (İnternette arama yaptığım kaynaklar genelde çok basit oluyor. Benim aradığım tam anlamıyla öğrenebileceğim bir kaynak.)
# 28065

Reverser

Alıntı yapılan: kaansef - 31 Aralık 2014 - 16:22:14
Teşekkür ederim @Reverser. Peki GDB için önerebileceğiniz Türkçe kaynak var mı? Belgeler'de gördüm ama eski diye bakmadım. Eğer bir çok şey değiştiyse eskiyi öğrenmenin bir anlamı yok çünkü. (İnternette arama yaptığım kaynaklar genelde çok basit oluyor. Benim aradığım tam anlamıyla öğrenebileceğim bir kaynak.)

Türkçe kaynak bu konuda neredeyse yok enderunix bir zamanlar güzel anlatımlar yapmıştı özellikle gdb kullanımı ve buffer overflow exploiting tekniğiyle ilgili. Hala duruyor mu bilmiyorum. Yabancı kaynaklara bakın daha çok.

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

O kaynağı biliyorum. İkisinide okudum. Keşke GDB'yi tam anlamıyla anlatan bir Türkçe kaynak olsa. Cevabınız için teşekkür ederim @Reverser. İyi yıllar bu arada herkese.
# 28065

heartsmagic

Alıntı yapılan: ahmetvural32 - 30 Aralık 2014 - 14:44:42
Ubuntuda C yazamamak başlığını

Bu konuyu baltalıyoruz ancak senin o başlığın kapatılmış durumda ve seni bir ankete yönlendiriyor. İstediğin soruların cevabını o ankette bulabilirsin.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Reverser

Arkadaşlar ilk örneği paylaşıyorum biraz kolay ama olsun :) Uğraşmak isteyenler için hedefiniz şu, programın işleyişini çözerek içeriğinde ham binary olarak bulunan dosyayı dışarı çıkartıp içinde ki şifreyi çözmek ilk örnek için fazlasıyla kolay olduğunu düşünüyorum herkese kolay gelsin :)

http://www.dosya.tc/server37/qPBrkC/crack_me.zip.html

XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

#43
sifre=991244 olabilir mi?
Ogrenmeye calisiyorum ama ozellikle sizden bu dosyanin asm kodlarini aciklayici bir sekilde anlatmanizi bekliyorum sonra ogrenmek acisindan.
Yani soyle

satirlari bize ne demek istemis olabilir ornegin.
asm konusunda daha yeniyim de.
Bu konuda detayli bir asm kod yorumlamasi yaparsaniz sevinirim.

Reverser

Alıntı yapılan: h454n - 02 Ocak 2015 - 01:51:32
sifre=991244 olabilir mi?
Ogrenmeye calisiyorum ama ozellikle sizden bu dosyanin asm kodlarini aciklayici bir sekilde anlatmanizi bekliyorum sonra ogrenmek acisindan.
Yani soyle

satirlari bize ne demek istemis olabilir ornegin.
asm konusunda daha yeniyim de.
Bu konuda detayli bir asm kod yorumlamasi yaparsaniz sevinirim.


evet, arkadaşım şifre 991244. Aslında örnek tam istediğim gibi olmadı ne yazık ki eğer anlatım olacaksa en baştan başlamalıyım diye düşünüyorum en basit işlemlerden yani.. bu şekilde temel kavramlar yerine oturacaktır. Bu arada asm öğrenmek için disassembler kullanmak iyi bir başlangıç olabilir.

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

@Reverser, konuyu dağıtmak istemem fakat uzun zamandır merak ettiğim bir konu var. Çift bellek adreslerine tek bellek adreslerinden daha hızlı erişilir diye bir konu var. Bunun nedenini açıklayabilir misiniz? İsterseniz özel mesaj olarak gönderin. Veya buraya yazalım ki tüm herkes faydalansın. (Alignment - Hizalam diye geçiyor.)
# 28065

Reverser

Alıntı yapılan: kaansef - 02 Ocak 2015 - 16:12:36
@Reverser, konuyu dağıtmak istemem fakat uzun zamandır merak ettiğim bir konu var. Çift bellek adreslerine tek bellek adreslerinden daha hızlı erişilir diye bir konu var. Bunun nedenini açıklayabilir misiniz? İsterseniz özel mesaj olarak gönderin. Veya buraya yazalım ki tüm herkes faydalansın. (Alignment - Hizalam diye geçiyor.)

Bu konu hakkında hiçbir fikrim yok ne yazık ki...

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

Cevapladığınız için çok teşekkür ederim. İnternetten araştırdığımda çıkan kaynakların neredeyse hepsi İngilizce maalesef.
# 28065

Reverser

Alıntı yapılan: kaansef - 02 Ocak 2015 - 17:06:23
Cevapladığınız için çok teşekkür ederim. İnternetten araştırdığımda çıkan kaynakların neredeyse hepsi İngilizce maalesef.

kaynakların linkini alabilir miyim acaba ? Merak ettim doğrusu.

XFCE ROCKS !
Powered by Thunar & XFWM4



kaansef

Tabii ki

Linkler:

Wikipedia'daki anlatım.
http://en.wikipedia.org/wiki/Data_structure_alignment

IBM'deki anlatım.
http://www.ibm.com/developerworks/library/pa-dalign/

MSDN'deki anlatım
http://msdn.microsoft.com/en-us/library/ms253949.aspx

Anahtar kelime olarak "data alignment", "memory alignment" gibi anahtar kelimeleri kullandım. Ayrıca Stackoverflow'da bir çok kez tartışılmış.
# 28065