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.

Amenofis

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.)

Doğrudur ama çift değil. İşlemcinin word uzunluğunun katları olursa daha hızlı erişirler. Mesela işlemci 32 bitse 4' ün katı olan adreslere daha hızlı erişilir. Bazı mimariler hizasız adresleri hiç desteklemez, hizalı olması şarttır. Örneğin Arm işlemcilerde word yanlızca 2' nin katlarına, dword ise 4' ün katlarına yazılmak zorunda. Bazı mimarilerse hizalı ya da hizasız aynı hızda erişebilmektedir. Mesela Intel core mimarisinde bu sorunu çözdü. Kısacası donanıma bağlı olarak durum değişiyor.

Reverser

Alıntı yapılan: Amenofis - 02 Ocak 2015 - 18:46:59
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.)

Doğrudur ama çift değil. İşlemcinin word uzunluğunun katları olursa daha hızlı erişirler. Mesela işlemci 32 bitse 4' ün katı olan adreslere daha hızlı erişilir. Bazı mimariler hizasız adresleri hiç desteklemez, hizalı olması şarttır. Örneğin Arm işlemcilerde word yanlızca 2' nin katlarına, dword ise 4' ün katlarına yazılmak zorunda. Bazı mimarilerse hizalı ya da hizasız aynı hızda erişebilmektedir. Mesela Intel core mimarisinde bu sorunu çözdü. Kısacası donanıma bağlı olarak durum değişiyor.

Amenofis, aydınlattığın için teşekkürler kaansef'in sorusunu yanlış anlamışım yazdıklarına katılıyorum. Mimariyle ilgili birazda özellikle MIPS mimarisinde buna benzer bir durumla karşılaşmıştım yanlış hatırlamıyorsam.

XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

Alıntı yapılan: Reverser - 02 Ocak 2015 - 15:39:23
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.
Hocam vallah anlatimda bulunursaniz cok iyi olur.Genel olrak da ogrenmis oluruz.Ozetle siz bu dosyada  nasil bir yol izlerdiniz?(mumkunse vidyo'lu olarak sesli olmasa da olur :) )
Gdb yukleme konusunda neler yapardiniz.Ben bazi sorunlar ile karsilastim da.
objdump ile dinamik analiz bile yapamadim. :)
extrack_meh fonksiyonun nasil. kaynak kodlari da paylasabilirmisiniz.
Daha cok sorum var da fazla uzakmayim takildikca buradan yardim isterim. :)

kaansef

Peki neden böyle oluyor? Mesela RAM dediğimiz 1 Byte'lık bölümlere ayrılmış bir veri deposu (kabaca). Yani ben 0'ıncı adresede erişsem, 1. adresede erişsem aynı şekilde getirilecekler. Adres Yolu'na veriyi almak istediğim yerin adresini yazacağım, Kontrol Yolu'na okuma isteği yazacağım ve Veri Yolu'ndan veri işlemciye gelecek. Aslında bu mantığı bir zamanlar oturtmuştum, anlamıştım fakat uzun süredir uğraşmadığım için unuttum ve şimdi nedenini çözemedim.
# 28065

Reverser

Alıntı yapılan: kaansef - 03 Ocak 2015 - 00:13:38
Peki neden böyle oluyor? Mesela RAM dediğimiz 1 Byte'lık bölümlere ayrılmış bir veri deposu (kabaca). Yani ben 0'ıncı adresede erişsem, 1. adresede erişsem aynı şekilde getirilecekler. Adres Yolu'na veriyi almak istediğim yerin adresini yazacağım, Kontrol Yolu'na okuma isteği yazacağım ve Veri Yolu'ndan veri işlemciye gelecek. Aslında bu mantığı bir zamanlar oturtmuştum, anlamıştım fakat uzun süredir uğraşmadığım için unuttum ve şimdi nedenini çözemedim.

Bunun nedenini amenofis benden çok daha anlaşılabilir bir dil kullanarak anlatmak ister umarım :)

Alıntı yapılan: h454n - 02 Ocak 2015 - 20:20:19
Alıntı yapılan: Reverser - 02 Ocak 2015 - 15:39:23
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.
Hocam vallah anlatimda bulunursaniz cok iyi olur.Genel olrak da ogrenmis oluruz.Ozetle siz bu dosyada  nasil bir yol izlerdiniz?(mumkunse vidyo'lu olarak sesli olmasa da olur :) )
Gdb yukleme konusunda neler yapardiniz.Ben bazi sorunlar ile karsilastim da.
objdump ile dinamik analiz bile yapamadim. :)
extrack_meh fonksiyonun nasil. kaynak kodlari da paylasabilirmisiniz.
Daha cok sorum var da fazla uzakmayim takildikca buradan yardim isterim. :)


Kusura bakmayın anca yanıtlayabiliyorum.

extract_meh(char *data);

fonksiyonu char tipli argüman alıyor (bu argüman, dosyanın ismi) dosya dökümü, (hex formatlı) "sifre.h" headerı içinde daha sonra aşağıdaki kod bloğu ile dosya yazılıyor.

void
extract_meh(char *data)
{
   FILE *handleWrite=fopen(data,"wb");
   fwrite(sifre_bin, 1, 772, handleWrite);
   fclose(handleWrite);
}   

XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

Hocam kodlar icin tesekkur ederim.
BIr sorum daha var.
edb'e yuklemede sorun yok ve digerlerinde.(ida)
yalniz gdb de bir turlu programi yukleyemedim.
Bu konuda ne yapmam lazim acaba bilgilendirebilirmisiniz.
Bir onlem mi var? Yeni yeni ogreniyorum daha.

Reverser

#56
Alıntı yapılan: h454n - 12 Ocak 2015 - 19:04:14
Hocam kodlar icin tesekkur ederim.
BIr sorum daha var.
edb'e yuklemede sorun yok ve digerlerinde.(ida)
yalniz gdb de bir turlu programi yukleyemedim.
Bu konuda ne yapmam lazim acaba bilgilendirebilirmisiniz.
Bir onlem mi var? Yeni yeni ogreniyorum daha.

Bence IDA ile başlamak güzel. Herhangibir koruma önlemi yok fakat, hex editor ile nop byteları editleyerek string girmiştim yanlış bir editleme yaparak programın yapısını bozmuş olabilirim emin değilim gdb ile hata alıyor musunuz ?

Düzeltme:

Kusura bakmayın yanlış editlenmiş versiyonu paylaşmışım ::) birde bunu deneyin http://s3.dosya.tc/server30/QcBQcB/crack_me.zip.html

reverser@reverser:~/Masaüstü$ gdb ./crack_me
./crack_me'den semboller okunuyor...(no debugging symbols found)...done.
(gdb) info functions
All defined functions:

Non-debugging symbols:
0x08048350  _init
0x08048390  printf@plt
0x080483a0  fclose@plt
0x080483b0  fwrite@plt
0x080483c0  puts@plt
0x080483d0  __gmon_start__@plt
0x080483e0  __libc_start_main@plt
0x080483f0  fopen@plt
0x08048400  _start
0x08048430  __x86.get_pc_thunk.bx
0x08048440  deregister_tm_clones
0x08048470  register_tm_clones
0x080484b0  __do_global_dtors_aux
0x080484d0  frame_dummy
0x080484fd  main
0x08048536  extract_meh
0x080485a0  __libc_csu_init
0x08048610  __libc_csu_fini
0x08048614  _fini
(gdb) disassemble main
Dump of assembler code for function main:
   0x080484fd <+0>: push   %ebp
   0x080484fe <+1>: mov    %esp,%ebp
   0x08048500 <+3>: and    $0xfffffff0,%esp
   0x08048503 <+6>: sub    $0x20,%esp
   0x08048506 <+9>: movl   $0x4,0x1c(%esp)
   0x0804850e <+17>: cmpl   $0x4,0x1c(%esp)
   0x08048513 <+22>: jne    0x8048523 <main+38>
   0x08048515 <+24>: movl   $0x8048984,(%esp)
   0x0804851c <+31>: call   0x80483c0 <puts@plt>
   0x08048521 <+36>: jmp    0x804852f <main+50>
   0x08048523 <+38>: movl   $0x80489c0,(%esp)
   0x0804852a <+45>: call   0x8048536 <extract_meh>
   0x0804852f <+50>: mov    $0x0,%eax
   0x08048534 <+55>: leave 
   0x08048535 <+56>: ret   
End of assembler dump.
(gdb) disassemble extract_meh
Dump of assembler code for function extract_meh:
   0x08048536 <+0>: push   %ebp
   0x08048537 <+1>: mov    %esp,%ebp
   0x08048539 <+3>: sub    $0x28,%esp
   0x0804853c <+6>: movl   $0x80489ca,0x4(%esp)
   0x08048544 <+14>: mov    0x8(%ebp),%eax
   0x08048547 <+17>: mov    %eax,(%esp)
   0x0804854a <+20>: call   0x80483f0 <fopen@plt>
   0x0804854f <+25>: mov    %eax,-0xc(%ebp)
   0x08048552 <+28>: movl   $0x80489cd,(%esp)
   0x08048559 <+35>: call   0x8048390 <printf@plt>
   0x0804855e <+40>: mov    -0xc(%ebp),%eax
   0x08048561 <+43>: mov    %eax,0xc(%esp)
   0x08048565 <+47>: movl   $0x304,0x8(%esp)
   0x0804856d <+55>: movl   $0x1,0x4(%esp)
   0x08048575 <+63>: movl   $0x8048680,(%esp)
   0x0804857c <+70>: call   0x80483b0 <fwrite@plt>
   0x08048581 <+75>: mov    -0xc(%ebp),%eax
   0x08048584 <+78>: mov    %eax,(%esp)
   0x08048587 <+81>: call   0x80483a0 <fclose@plt>
   0x0804858c <+86>: movl   $0x80489e9,(%esp)
   0x08048593 <+93>: call   0x80483c0 <puts@plt>
   0x08048598 <+98>: leave 
---Type <return> to continue, or q <return> to quit---return
   0x08048599 <+99>: ret   
End of assembler dump.
(gdb) Quit




XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

aldigim hata hocam
crack_me/./crack_me": not in executable format: File format not recognized

Reverser

Alıntı yapılan: h454n - 12 Ocak 2015 - 20:35:25
aldigim hata hocam
crack_me/./crack_me": not in executable format: File format not recognized

Yeni paylaştığım dosyada hata olmaması lazım...

XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

Simdi denedim onda sorun yok hocam.

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

Sorun cozuldu hocam da.
simdi kafamda soru isareti olustu. diger programlarla acilirken gdb ile niye acilmiyor. Bu gdb de acmak icin ne yapmamiz lazim.
Nasil bir ayar yada degisiklik yaparsak gdb ile acabiliriz.Kisaca boyle durumlarda ne yapmamiz lazim.

Reverser

Alıntı yapılan: h454n - 12 Ocak 2015 - 22:02:56
Sorun cozuldu hocam da.
simdi kafamda soru isareti olustu. diger programlarla acilirken gdb ile niye acilmiyor. Bu gdb de acmak icin ne yapmamiz lazim.
Nasil bir ayar yada degisiklik yaparsak gdb ile acabiliriz.Kisaca boyle durumlarda ne yapmamiz lazim.

Dosya bölümündeki bir kısım bozuktu o yüzden gdb yürütemedi demekki bunun için başka bir disassembler ile denemekten başka yapacak bir şey yok. Bu arada crack_me çözümünü adım adım paylaşayım mı ?

XFCE ROCKS !
Powered by Thunar & XFWM4



h454n

Vallah cok iyi olur anlatim hocam.
Bekliyorum.

Reverser

Öncelikle programın kaynak kodu aşağıdaki gibidir sifre.bin içeriği sifre.h headerı içinde barındırılmaktadır. Basit GDB işlevleri ve komutları hakkında detaylı açıklamaları google üzerinden bulabilirsiniz.

/***************************
 
   crack_me
   coded by Reverser

***************************/

#include <stdio.h>
#include <stdio.h>

#include "sifre.h"

//func prototype
void extract_meh(char *data);


int
main (int argc, char *argv[])
{
  int hack_meh = 4;
 
  if (hack_meh == 4)
    {
      printf("Turkce crack_me.exe anlatim forumda mevcuttur.\n\n- Reverser.\n");
    }
  else
    {
      extract_meh("sifre.bin");
    }
return 0;
}   

void
extract_meh(char *data)
{
   FILE *handleWrite=fopen(data,"wb");
   printf("\n sifre.bin cikartiliyor...");
   fwrite(sifre_bin, 1, 772, handleWrite);
   fclose(handleWrite);
   printf(" Tamam !\n");
}   


main içindeki

   int hack_meh = 4;
 
  if (hack_meh == 4)
    {
      printf("Turkce crack_me.exe anlatim forumda mevcuttur.\n\n- Reverser.\n");
    }
  else
    {
      extract_meh("sifre.bin");
    }


kısmına dikkatli bakalım. Program normal rutininde başlıyor ve else if doğrultusunda bize printf("Turkce crack_me.exe anlatim forumda mevcuttur.\n\n- Reverser.\n"); çıktısını veriyor. Bize lazım olan kısım bu "sorguyu" değiştirmek ve ardından "extract_meh("sifre.bin");" fonksiyonunu döndürmek.

konsola geçiyoruz ve ardından srırasıyla komutlarımızı veriyoruz

gdb crack_me

info functions ile fonksiyon adlarını görebilir ve "disassemble fonksiyon_adı" şeklinde disassemble edebilirsiniz.

info functions

start ile execution'ı başlatalım

start

disassemble main ile main fonksiyonumuza bir bakalım

disassemble main

ve çıktımız aşağıdaki şekilde olmalı

Dump of assembler code for function main:
   0x080484fd <+0>: push   %ebp
   0x080484fe <+1>: mov    %esp,%ebp
=> 0x08048500 <+3>: and    $0xfffffff0,%esp
   0x08048503 <+6>: sub    $0x20,%esp
   0x08048506 <+9>: movl   $0x4,0x1c(%esp)
   0x0804850e <+17>: cmpl   $0x4,0x1c(%esp)
   0x08048513 <+22>: jne    0x8048523 <main+38>
   0x08048515 <+24>: movl   $0x8048984,(%esp)
   0x0804851c <+31>: call   0x80483c0 <puts@plt>
   0x08048521 <+36>: jmp    0x804852f <main+50>
   0x08048523 <+38>: movl   $0x80489c0,(%esp)
   0x0804852a <+45>: call   0x8048536 <extract_meh>
   0x0804852f <+50>: mov    $0x0,%eax
   0x08048534 <+55>: leave 
   0x08048535 <+56>: ret   
End of assembler dump.


Azıcık çıktı okuyalım ve (kaynak kodu bilsekte) ne olduğunu anlamaya çalışalım. Bunun için temel x86 ASM bilmeniz gerekmekte bu da google'da bolca bulunmakta

*extract_meh fonksiyonu ile ilgili gözüme çarpan bir şey bulunmakta "0x80489c0" bu adres nedir ne değildir bir inceleyelim

aşağıda ki şekilde bakıyoruz

printf "%s\n",0x80489c0

çıktı olarak

sifre.bin

vermekte yani, extract_meh fonksiyonu char tipinde bir argüman almakta...

"if (hack_meh == 4) " kısmına geri dönelim, ve sonrasında assembly çıktısına bakalım şu kısıma dikkat ettiniz mi ?

  0x08048513 <+22>: jne    0x8048523 <main+38> JNE-> jump if not equal bu kısımda JNE olan kısmı JE -> jump if equal yaparsak, else if condition akışı değişecek ve program ekrana yazı yazdırmak yerine, "extract_meh(sifre.bin)" fonksiyonunu döndürecek bu şekilde de sifre.bin dosyasına ulaşacağız.

Devam edelim,

x/4x 0x08048513

ile opcode analizi yapıyoruz

0x04c70e75

aldığımız çıktıda en sonda bulunan "75" JNE'nin opcodudur. Intel instruction set konusuyla ilgili detaylı bilgi için: http://ref.x86asm.net/coder32.html

amacımız JNE yi JE yapmak. JE'nin opcodu ise 0x74 bu halde olması gereken ise ,

0x04c70e74

gdb konsolumuza geri dönüyoruz ve

set *(char*)0x08048513=0x04c70e74

yazıp enterlıyoruz bu işlemden sonra JNE , JE ile değiştirildi ve extract_meh(); fonksiyonu çalıştırılmaya hazır.

continue

ile devam ediyoruz

(gdb) continue
Devam ediyor.

sifre.bin cikartiliyor... Tamam !
[Inferior 1 (process 2986) exited normally]
(gdb)


ve mutlu son sifre.bin masaüstüne çıkartıldı. Anlatımı elimden geldiği kadarıyla açıklayıcı yapmaya çalıştım umarım bir yanlışlık yapmamışımdır şimdiden herkese kolay gelsin !


XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

Vidyo cekmeyi sevdigim icin vidyo da benden olsun.
http://youtu.be/c9UU8CFPRlc
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

Alıntı yapılan: Z3r0nU11 - 14 Ocak 2015 - 19:59:44
Vidyo cekmeyi sevdigim icin vidyo da benden olsun.
http://youtu.be/c9UU8CFPRlc

Video için teşekkürler çok güzel olmuş. Aslında şifre dosyasını encrypt etmeliydim herneyse ilk örnek için gayet yeterli ve eğlenceli oldu bir sonraki örnek daha çok uğraştıracak tekrar teşekkür ederim @Z3r0nU11 :)

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

Alıntı yapılan: Reverser - 14 Ocak 2015 - 20:46:36
Alıntı yapılan: Z3r0nU11 - 14 Ocak 2015 - 19:59:44
Vidyo cekmeyi sevdigim icin vidyo da benden olsun.
http://youtu.be/c9UU8CFPRlc

Video için teşekkürler çok güzel olmuş. Aslında şifre dosyasını encrypt etmeliydim herneyse ilk örnek için gayet yeterli ve eğlenceli oldu bir sonraki örnek daha çok uğraştıracak tekrar teşekkür ederim @Z3r0nU11 :)
Aslinda senaryo seklinde ben de hazirlamak isterim ama forum kurallari geregi sorun olabilir .Yonetime sormak lazim.Ilgilenen de bulmak lazim tabi kendin pisir kendin ye de olmaz :)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

ilgilenen mutlaka çıkacaktır da forum kuralları açısından nasıl olur bilmiyorum daha doğrusu ne olabilir ?

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#69
Alıntı yapılan: Reverser - 14 Ocak 2015 - 20:56:47
ilgilenen mutlaka çıkacaktır da forum kuralları açısından nasıl olur bilmiyorum daha doğrusu ne olabilir ?
Konu hakkinda yonetimden bilgi talep edebiliriz aslinda.Neyse @heartmagic okuyunca konu hakkinda bilgi verecektir bize.Olmadi ozelden bir sorariz.Iyicene crack forumuna donmesin sonra :)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

Alıntı yapılan: Z3r0nU11 - 14 Ocak 2015 - 21:09:15
Alıntı yapılan: Reverser - 14 Ocak 2015 - 20:56:47
ilgilenen mutlaka çıkacaktır da forum kuralları açısından nasıl olur bilmiyorum daha doğrusu ne olabilir ?
Konu hakkinda yonetimden bilgi talep edebiliriz aslinda.Neyse @heartmagic okuyunca konu hakkinda bilgi verecektir bize.Olmadi ozelden bir sorariz.Iyicene crack forumuna donmesin sonra :)

Kendi yazdığımız uygulamalar üzerinde çalışıyoruz sorun olacağını sanmıyorum yinede @heartsmagic'in geri dönüşünü bekleyelim o halde.

XFCE ROCKS !
Powered by Thunar & XFWM4



heartsmagic

Konu bu şekilde devam ettiği sürece kendi adıma hiçbir sorun olmaz. Netice olarak "crack" mevzunun temeli de dile, kodlamaya bakan bir şey ve ortada olan bir şeyi yasaklamanın bir anlamı yok. Haliyle bu ve benzeri bir başlıkta da "X uygulamasının kırılması lazım bana" diyen de çıkmayacağına göre sorun olacağını düşünmüyorum.

Fakat, konu tek başıma karar verebileceğim bir konu değil, ben fikir yürütebilecek insanlardan sadece birisiyim. Arkadaşlardan da fikir alır, eğer bir sorun olursa konuya tekrar dönüş yaparım veya kendileri de yorum yapabilirler elbette.
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.

kodadiirem

"Tersine kod mühendisliği"ne vakıf olmasam da soruya verilen açıklamalı cevaplarınızı okumak, bunların yapılışının videosunu seyretmek çok zevkli. :)
Lütfen Türkçemizi doğru kullanalım.

h454n

Tesekkur ederim hocam cozum icin.

Reverser

#74
Alıntı yapılan: kodadiirem - 16 Ocak 2015 - 02:40:57
"Tersine kod mühendisliği"ne vakıf olmasam da soruya verilen açıklamalı cevaplarınızı okumak, bunların yapılışının videosunu seyretmek çok zevkli. :)

Alıntı yapılan: h454n - 17 Ocak 2015 - 00:53:27
Tesekkur ederim hocam cozum icin.

rica ederim konunun ilgi görmesi çok güzel. Yeni bir crack_me hazırlayıp, ilerleyen günlerde paylaşmayı düşünüyorum reverse engineering ile ilgilenenlerin haberi olsun.

XFCE ROCKS !
Powered by Thunar & XFWM4