Tersine Kod Mühendisliği

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

« önceki - sonraki »

0 Üyeler ve 5 Ziyaretçi konuyu incelemekte.

h454n

Sabirsizlikla bekliyorum hocam...

7hr33l3t73r

#76
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 - 17 Ocak 2015 - 18:38:55
Bu paylasimda benden olsun.
http://s3.dosya.tc/server30/aH4p0m/crackme1.zip.html

Uygulamaya gdb üzerinden müdahale etmek neredeyse mümkün değil en azından ben şimdilik bir yol bulamadım. @Z3r0nU11 gdb ile müdahale etmek mümkün mü ?

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

b  *0x8048091
Denemekte fayda var. :)
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

#79
Alıntı yapılan: Z3r0nU11 - 18 Ocak 2015 - 16:08:39
b  *0x8048091
Denemekte fayda var. :)

entry point'e ulaşamadım bir türlü teşekkürler :D stripped oluşu çok zahmetli...
0x8048091
bu adrese nasıl ulaştınız açıklayabilir misiniz ?

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#80
readelf -l crackme

Elf file type is EXEC (Executable file)
Entry point 0x8048091
There are 2 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x000074 0x08048074 0x08048074 0x00126 0x00126 R E 0x1000
  LOAD           0x00019a 0x0804919a 0x0804919a 0x00100 0x00100 RW  0x1000


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 - 18 Ocak 2015 - 16:56:31
readelf -l crackme

Elf file type is EXEC (Executable file)
Entry point 0x8048091
There are 2 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x000074 0x08048074 0x08048074 0x00126 0x00126 R E 0x1000
  LOAD           0x00019a 0x0804919a 0x0804919a 0x00100 0x00100 RW  0x1000



main'e ulaştım yalnız şöyle bir şey var password sorgusunu düzenlediğim zaman password yanlış olsada herhangi bir şey olmuyor program sonlanıyor bu kadar mı ? Yani, No dışında göreceğim bir string var mı ? "password:" ve "No" dışında başka bir string bulamadım.

Özetleyecek olursak, şifre doğruysa return 0 ile program sonlandırılıyor mu ? Bunu öğrenmek istiyorum.

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#82
Dogru sifre de  "OK" string var.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

#83
Alıntı yapılan: Z3r0nU11 - 18 Ocak 2015 - 18:44:09
Dogru sifre de  "OK" string var.


crackme analiz

1)main

=> 0x8048091: call   0x8048074
   0x8048096: mov    $0x801919b,%eax
   0x804809b: mov    $0x13,%edx
   0x80480a0: call   0x8048115
   0x80480a5: mov    $0x80491ad,%ecx
   0x80480aa: mov    $0xb,%edx
   0x80480af: call   0x8048115
   0x80480b4: mov    $0x3,%eax
   0x80480b9: mov    $0x1,%ebx
   0x80480be: mov    $0x80491d8,%ecx
   0x80480c3: mov    $0x8,%edx
   0x80480c8: int    $0x80
   0x80480ca: call   0x8048122
   0x80480cf: mov    $0x9,%ecx
   0x80480d4: call   0x8048185
   0x80480d9: mov    $0x4,%ecx
   0x80480de: mov    $0x8048096,%esi
   0x80480e3: mov    $0x8049289,%edi
   0x80480e8: repz cmpsb %es:(%edi),%ds:(%esi)
   0x80480ea: je     0x80480fd
   0x80480ec: mov    $0x8048157,%ecx
   0x80480f1: mov    $0x4,%edx
   0x80480f6: call   0x8048115
   0x80480fb: jmp    0x804810c
   0x80480fd: mov    $0x8048142,%ecx
   0x8048102: mov    $0x4,%edx
   0x8048107: call   0x8048115
   0x804810c: mov    $0x1,%eax
   0x8048111: xor    %ebx,%ebx
   0x8048113: int    $0x80


password stringi

0x80491ad

No stringi

0x8048157

scanf() ?

0x8048185

Asıl önemli kısım

   0x80480de: mov    $0x8048096,%esi
   0x80480e3: mov    $0x8049289,%edi
   0x80480e8: repz cmpsb %es:(%edi),%ds:(%esi)
   0x80480ea: je     0x80480fd


OK stringine ulaşmak için gerekli olan adres

0x80480ea

Adresin dökümü

  0x80480ea: je     0x80480fd
   0x80480ec: mov    $0x8048157,%ecx
   0x80480f1: mov    $0x4,%edx
   0x80480f6: call   0x8048115
   0x80480fb: jmp    0x804810c
   0x80480fd: mov    $0x8048142,%ecx
   0x8048102: mov    $0x4,%edx
   0x8048107: call   0x8048115
   0x804810c: mov    $0x1,%eax
   0x8048111: xor    %ebx,%ebx
   0x8048113: int    $0x80
   0x8048115: mov    $0x4,%eax
   0x804811a: mov    $0x1,%ebx
   0x804811f: int    $0x80
   0x8048121: ret   


XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

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 - 19 Ocak 2015 - 00:07:51
sifre?

Şifreye ulaşamadım ama şifre sorgusunu bypass edebiliyorum. ip ucu alabilir miyim ? :D

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#86
8048096

Kontrol sart... :)
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 - 19 Ocak 2015 - 01:21:37
8048096
Kontrol sart... :)

Kontrol şart farkındayım önceki mesajımda da önemli yer olarak belirttim zaten ama çıkamadım işin içinden bir türlü  :-X

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#88
4 bayt karsilastirma....
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 - 19 Ocak 2015 - 01:40:46
4 bayt karsilastirma....

Çıkamadım işin içinden anlatırsanız çok sevinirim...
son 4 bayt karsilastirması

 
  0x8048096
  0x8049289


yukarıdakiler için mi ?

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

#90
Kodlar;

    0x08048079    BF0A810408   mov edi, 0x0804819a
    0x0804807e    31C0         xor eax, eax
            0x08048080    31DB         xor ebx, ebx
    0x08048082    8A1E         mov bl, byte ptr [esi]
    0x08048084    01D8         add eax, ebx
            0x08048086    46           inc esi
    0x08048087    39FE         cmp esi,edi
    0x08048089    76F5         jbe 0x08048080
    0x0804808b    A392920408   mov dword ptr [0x08049292],eax
    0x08048090   C3        ret
            0x08048091    B8FEFFFFFF   call section.ehdr
               0x08048074() ; section.phdr0
            0x08048096    B89B910108   mov eax, 0x801919b
            0x0804809b    BA13000000   mov edx, 0x13
            0x080480a0    E870000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x080480a5    B9AD910408   mov ecx, 0x80491ad ; "Password: " @ 0x80491ad
            0x080480aa    BA0B000000   mov edx, 0xb
            0x080480af    E861000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x080480b4    B803000000   mov eax, 3
            0x080480b9    BB01000000   mov ebx, 1
            0x080480be    B9D8910408   mov ecx, 0x80491d8
            0x080480c3    BA08000000   mov edx, 8
            0x080480c8    CD80         int 0x80
            0x080480ca    E853000000   call 0x8048122
               0x08048122() ; section_end.ehdr
            0x080480cf    B909000000   mov ecx, 9
            0x080480d4    E8AC000000   call 0x8048185
               0x08048185() ; section_end.ehdr
            0x080480d9    B904000000   mov ecx, 4
            0x080480de    BE96800408   mov esi, 0x8048096
            0x080480e3    BF89920408   mov edi, 0x8049289
            0x080480e8    F3A6         rep cmpsb byte [esi], byte ptr es:[edi]
            0x080480ea    7411         je 0x80480fd
            0x080480ec    B957810408   mov ecx, 0x8048157
            0x080480f1    BA04000000   mov edx, 4
            0x080480f6    E81A000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x080480fb    EB0F         jmp 0x804810c
            0x080480fd    B942810408   mov ecx, 0x8048142
            0x08048102    BA04000000   mov edx, 4
            0x08048107    E809000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x0804810c    B801000000   mov eax, 1
            0x08048111    31DB         xor ebx, ebx
            0x08048113    CD80         int 0x80
            0x08048115    B804000000   mov eax, 4
            0x0804811a    BB01000000   mov ebx, 1
            0x0804811f    CD80         int 0x80
            0x08048121    C3           ret
            0x08048122    8B2D96920408 mov ebp, dword [0x8049296] ; [:4]=0xffffff00
            0x08048128    BBE8800408   mov ebx, 0x80480e8
            0x0804812d    BF01000000   mov edi, 1
            0x08048132    8B03         mov eax, dword [ebx]
            0x08048134    31E8         xor eax, ebp
            0x08048136    75D4         jne 0x804810c
            0x08048138    BDD8910408   mov ebp, 0x80491d8
            0x0804813d    B8B8910408   mov eax, 0x80491b8
            0x08048142    4F           dec edi
            0x08048143    4B           dec ebx
            0x08048144    0A00         or al, byte [eax]
            0x08048146    31DB         xor ebx, ebx
            0x08048148    BE01000000   mov esi, 1
            0x0804814d    83ff00       cmp edi, 0
            0x08048150    740E         je 0x8048160
            0x08048152    B8BC910408   mov eax, 0x80491bc
            0x08048157    4E           dec esi
            0x08048158    6F           outsd dx, dword [esi]
            0x08048159    0A00         or al, byte [eax]
            0x0804815b    83FE00       cmp esi, 0
        0x0804815e    751E         jne 0x804817e
      0x08048160    8B4500       mov eax, dword [ebp]
            0x08048163    25FF000000   and eax, 0xff
            0x08048168    3C46         cmp al, 0x46 ; 'F'
        0x0804816a    7712         ja 0x804817e
            0x0804816c    2C30         sub al, 0x30
            0x0804816e    720E         jb 0x804817e
            0x08048170    3C0A         cmp al, 0xa
            0x08048172    7202         jb 0x8048176
            0x08048174    2C07         sub al, 7
      0x08048176    C1E304       shl ebx, 4
            0x08048179    01C3         add ebx, eax
            0x0804817b    45           inc ebp
            0x0804817c    EBE2         jmp 0x8048160
            0x0804817e    891D89920408 mov dword [0x8049289], ebx ; [:4]=0xffffff00
            0x08048184    C3           ret
            0x08048185    BBCE9A5713   mov ebx, 0x13579ace
            0x0804818a    B8B8910408   mov eax, 0x80491b8
            0x0804818f    3118         xor dword [eax], ebx

Cozum;

    0x08048079    BF0A810408   mov edi, 0x0804819a
    0x0804807e    31C0         xor eax, eax
            0x08048080    31DB         xor ebx, ebx
    0x08048082    8A1E         mov bl, byte ptr [esi]
    0x08048084    01D8         add eax, ebx
            0x08048086    46           inc esi
    0x08048087    39FE         cmp esi,edi
    0x08048089    76F5         jbe 0x08048080
    0x0804808b    A392920408   mov dword ptr [0x08049292],eax
    0x08048090   C3        ret

Yukarida ki islem kodu da  bastan baslayarak dword 804819A daha az olana kadar
depolanir
0x0804808b    A392920408   mov dword ptr [0x08049292],eax
Sonra
0x08049292 adresinde hex degere donustur.

            0x08048122    8B2D96920408 mov ebp, dword [0x8049296] ; [:4]=0xffffff00
            0x08048128    BBE8800408   mov ebx, 0x80480e8
            0x0804812d    BF01000000   mov edi, 1
            0x08048132    8B03         mov eax, dword [ebx]
            0x08048134    31E8         xor eax, ebp
            0x08048136    75D4         jne 0x804810c
            0x08048138    BDD8910408   mov ebp, 0x80491d8
            0x0804813d    B8B8910408   mov eax, 0x80491b8
            0x08048142    4F           dec edi
            0x08048143    4B           dec ebx
            0x08048144    0A00         or al, byte [eax]
            0x08048146    31DB         xor ebx, ebx
            0x08048148    BE01000000   mov esi, 1
            0x0804814d    83FF00       cmp edi, 0
            0x08048150    740E         je 0x8048160
            0x08048152    B8BC910408   mov eax, 0x80491bc
            0x08048157    4E           dec esi
            0x08048158    6F           outsd dx, dword [esi]
            0x08048159    0A00         or al, byte [eax]
            0x0804815b    83FE00       cmp esi, 0
            0x0804815e    751E         jne 0x804817e
            0x08048160    8B4500       mov eax, dword [ebp]
            0x08048163    25FF000000   and eax, 0xff
            0x08048168    3C46         cmp al, 0x46 ; 'F'
            0x0804816a    7712         ja 0x804817e
            0x0804816c    2C30         sub al, 0x30
            0x0804816e    720E         jb 0x804817e
            0x08048170    3C0A         cmp al, 0xa
            0x08048172    7202         jb 0x8048176
            0x08048174    2C07         sub al, 7
            0x08048176    C1E304       shl ebx, 4
            0x08048179    01C3         add ebx, eax
            0x0804817b    45           inc ebp
            0x0804817c    EBE2         jmp 0x8048160



            0x08048142    4F           dec edi
            0x08048143    4B           dec ebx
            0x08048144    0A00         or al, byte [eax]
            0x08048146    31DB         xor ebx, ebx
            0x08048148    BE01000000   mov esi, 1
            0x0804814d    83FG00       cmp edi, 0
          0x08048150    740E         je 0x8048160


4F     O     OK
4B     K
0A 00 or al, [eax]


            0x08048157    4E           dec esi
            0x08048158    6F           outsd dx, dword [esi]
            0x08048159    0A00         or al, byte [eax]
            0x0804815b    83FE00       cmp esi, 0
        0x0804815e    751E         jne 0x804817e

4E     N     NO
6F     O
0A 00 or al, [eax]


Sifre Kontrolu
girilen degeri 0x08048096 adreste 4 bayti karsilastir.

            0x080480d9    B904000000   mov ecx, 4
            0x080480de    BE96800408   mov esi, 0x8048096
            0x080480e3    BF89920408   mov edi, 0x8049289
            0x080480e8    F3A6         rep cmpsb byte [esi], byte ptr es:[edi]
            0x080480ea    7411         je 0x80480fd
            0x080480ec    B957810408   mov ecx, 0x8048157
            0x080480f1    BA04000000   mov edx, 4
            0x080480f6    E81A000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x080480fb    EB0F         jmp 0x804810c
            0x080480fd    B942810408   mov ecx, 0x8048142
            0x08048102    BA04000000   mov edx, 4
            0x08048107    E809000000   call 0x8048115
               0x08048115() ; section_end.ehdr
            0x0804810c    B801000000   mov eax, 1
            0x08048111    31DB         xor ebx, ebx
            0x08048113    CD80         int 0x80
            0x08048115    B804000000   mov eax, 4
            0x0804811a    BB01000000   mov ebx, 1
            0x0804811f    CD80         int 0x80

Iste little endian farki :)
   0x08048096    B89B910108   mov eax, 0x801919B


B89B9101

01919BB8 mutlu son(sifre)

Yama offset'i 0x-080480e8

0x080480e8    f3a6         rep cmpsb byte [esi], byte ptr es:[edi]
0x080480ea    7411         je 0x80480fd

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

Reverser

#91
Teşekkürler anlatım için gdb kullanımı sırasında nasıl olduysa bu baytları hiç endian olarak değerlendirmedim hatta bir ara hex değerleri decimal değerlere dönüştürdüm şu anda çözüme ulaştım zaman bulduğumda video eklerim

Düzeltme:

Video eklendi: http://s3.dosya.tc/server30/Paxlwy/crackme.ogv.zip.html


XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

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 - 19 Ocak 2015 - 18:57:40
Vidyo icin tesekkur ederim.

Rica ederim hocam, unutmadan crackme kaynak kodunu paylaşabilir misiniz ?

XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

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

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4



7hr33l3t73r

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

h454n

Olayi kacirmisiz iyimi :)
ama herkese cok tesekkur ederim. Guzel olmus.
Devamini bekliyorum...

7hr33l3t73r

Bu sefer ki biraz farkli olsun istedim ve olabildigince basite kactim.
Program icine  flag yerlestirdim.
Bakalim kim cozecek. :)
Ugrasmak isteyenler icin kiyida kose de dursun.
http://www.dosya.tc/server38/eWDJjM/crackme2.zip.html
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

Reverser

İlerleyen saatlere doğru linux makinam'da inceleyeceğim istenen nedir ?

XFCE ROCKS !
Powered by Thunar & XFWM4