Tersine Kod Mühendisliği

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

« önceki - sonraki »

0 Üyeler ve 20 Ziyaretçi konuyu incelemekte.

Sh4oTT

#350
Hemen izliyorum  :)



Aga cok guzel anlatmissin fakat bilmedigim icin ben birsey anlamadim ama bir sistemin sifresini kiriyormussun gibi hissettim :) Hacker filmi izler gibi izledim :) Cok tesekkurler devamini bekleriz :)

Reverser

@oasln, vidyolu anlatım için teşekkürler gayet güzel bir yöntem kullanmışsın. Tebrikler.  ;)

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

@oasln, video icin tesekkurler.Bu arada
reverse yaziliminin yerine sozde kod icin  hopper tavsiye ederim.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

oasln

IDA ve Hopper'i lisansları nedeniyle tercih etmedim. Sonuçta bu benim için sadece bir hobi, ödün vermeye gerek yok.
--

7hr33l3t73r

IDA icin kabul edilebilir de.Hopper 30 dakika gibi bir sure veriyor yazilimi calistirmaniz icin.
Tabi benim ki sadece bir tavsiye.Kullanip kullanmamak size kalmis.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

heartsmagic

Ben de, bu başlığı çekirdek çıtlayıp film izler gibi takip ediyorum :)
@oasln, ilk video için muazzam olmuş bence.
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.

karakartala

Video güzel olmuş. Videodan sonra tekrar Assembly öğrenmeye başlama isteği duydum. :D

betseg


Reverser

cevap için diğer arkadaşları bekliyorum.

XFCE ROCKS !
Powered by Thunar & XFWM4



oasln

--

betseg

C'yi istiyorum. Bu konudaki ilk gönderiler gibi.

ahmet_matematikci

♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

Reverser


//Reversed source code - Reverser
//file a8 x64 bit

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

int main(int argc, char *argv[])
{
//counter = 0x63 = 99 | 0x0 = 0
int counter;
for(counter = 99; counter > 0; counter--)
{
if(counter != 1)
{
printf("%d bottles of beer on the wall, %d bottles of beer. Take one down and pass it around, %d bottles of beer on the wall.\n", counter,counter,counter);
}
else
{
printf("%d bottles of beer on the wall, %d bottles of beer. Take one down and pass it around, no more bottles of beer on the wall.\nNo more bottles of beer on the wall, no more bottles of beer. Go to the store and buy some more, 99 bottles of beer on the wall.",counter, counter);

}
}
  return 0;
}

XFCE ROCKS !
Powered by Thunar & XFWM4



betseg

Adlar dışında tamamen aynı :D

Reverser

#364
bu da benden gelsin: [1]
Not: dosya stripped değil, bu nedenle her şey ortada. Sadece biraz uğraşmak gerekiyor anlamak için. :)
İstenen: ASM çıktısını, C/C++, Java, LUA ya da Python gibi herhangi bir dile çevirmek.
[1] http://s6.dosya.tc/server/a4wa5m/reverse.zip.html

XFCE ROCKS !
Powered by Thunar & XFWM4



betseg

Silme linki atmışsın. :P

Not: 32 bit atmadım çünkü multilib sorun çıkarmaya başladı.

Reverser

yine aynı şeyi yaptım, sen de sildin tabii :D
her neyse, düzelttim linki.

XFCE ROCKS !
Powered by Thunar & XFWM4



betseg

NULL'un içini buldum. Şİmdi diğerlerine bakayım :P

Reverser

son paylaştığım dosya ile uğraşan oldu mu ?

XFCE ROCKS !
Powered by Thunar & XFWM4



betseg

#369
Ben uğraşmaya çalıştım ama hiç yapamıyom :(

7hr33l3t73r

@betseg, Tersine kodlamak zaten ugrastiricidir.
Ben de soyle bir goz attabildim sadece. :)

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

Reverser

#371
İpucu veriyorum.
movb   $0x44,-0x1(%rbp)
>>> chr(0x44)
'D'

compare dan sonra bolca jump var.

XFCE ROCKS !
Powered by Thunar & XFWM4



oasln

Ben biraz baktım da fonksion pointerini çağırdığı yeri çözemedim:

Şöyle bişey:


#include <stdio.h>

void gectin() {
    puts("Geçtin");
}

void (*fn)() = gectin;

int main (int argc, char *argv[])
{
    char gecme_notu = 'D';

    puts("Reverse_me*");

    if ((unsigned) gecme_notu - 65 <= 5) {
        /* ??????? */
        fn();
    } else {
        puts("Geçersiz not.");
        /* geri buraya atlıyor geçse bile */
        printf("Geçme notu: %c\n", gecme_notu);
    }

    return 0;
}
--

Reverser

tanımlı olan bir harf notumuz var "0x44" yani "D" karakteri. Ardından bu harf notu alınıyor, tanımlı olan harf notları ile karşılaştırılıyor ve kendisi ile ilişkili olan mesajı ekrana basıyor.
/* geri buraya atlıyor geçse bile */
printf("Geçme notu: %c\n", gecme_notu);

evet, atlaması normal zira o şekilde kodlandı.

Diğer harf notlarını ve kendileri ile ilişkilendirilmiş olan, mesajlar ile birlikte tersine kodlanmış olan kaynak kodu istiyorum.

XFCE ROCKS !
Powered by Thunar & XFWM4



Reverser

en son paylaştığım reverse_me.zip kaynak kodu:

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


int main (int arg, char *argv [])
{
   char not = 'D';
   printf("Reverse_me*\n");
   switch(not)
   {
   case 'A' :
      printf("Harika !\n" );
      break;
   case 'B' :
   case 'C' :
      printf("İyisin iyi :)\n" );
      break;
   case 'D' :
      printf("Geçtin\n" );
      break;
   case 'F' :
      printf("Daha iyisini yapabilirsin.\n" );
      break;
   default :
      printf("Geçersiz not.\n" );
   }
   printf("Geçme notu: %c\n", not );
   return 0;
}


derlenme şekli:
gcc reverse_me.c -o reverse.zip

XFCE ROCKS !
Powered by Thunar & XFWM4