Software hacking
May 15, 2007
Selasa 15 Mei 2007
Hola,,
banyak yang bingung dengan software-software yang masih bersifat trial ataupun shareware dan demo disini dijelaskan bagaimana cara merubah nama software dengan bahasa assembly GBU
| Hacking Software |
| Date: Monday, April 21, 2003 Hits: 21191 By: Onan Farabi |
| Melihat semakin beragamnya Jenis Operating system akhir-akhir ini, saya ingin mencoba mengusulkan tentang tata letak pembuatan sebuah software.
Hacking Software
Pada umumnya sebuah software normal tipe 32-bit terbagi menjadi beberapa bagian, bagian yang umum adalah resource, bagian dimana icon gambar dan yang lainnya disimpan, kemudian data, bagian dimana variabel yang terinisialisasi disimpan dan kode, dimana program utama dijalankan. Program Com mempunyai bagian yang paling sederhana dari semua jenis executable atau file yang bisa dilaksanakan/jalankan. Data yang terinisialisasi oleh Com exe dengan yang tidak, akan dianggap sama. Umumnya untuk menghemat ukuran, software selalu tidak menyertakan seksi stack pada badan program, tetapi memberikannya setelah program dijalankan. Software yang saya niatkan untuk dibuat akan mempunyai tata letak atau bagian seperti ini. 1024 byte pertama yang biasanya di isi oleh header pada Win32, akan saya jadikan sebuah perintah untuk melakukan penginisialisasian program secara automatis. Bisa anda lihat source kode-nya dibawah ini:
; Berkas/file COM di isi di alamat CS:0100h ; (Nilai CS diset oleh Operating system) ORG 100h
; Fungsi CSPMode di gunakan sebagai header ; Bisa pula dijadikan Kernel 32-Bit
jmp start
CSPmode: smsw_cx db 0fh,01,0e1h ;SMSW cx byte mov ax,cx ;At Pmode this will be mov eax,ecx and al,1 cmp al,1 jz trs inc cx lmsw_cx db 0fh,01,0f1h ;lmsw cx byte trs: ret
; Program di mulai di sini start: call CSPMode cmp al,0 jz brs mov ah,9 mov dx,offset tes int 21h brs: ; Tambahkan kode anda disini ret
Tes db ‘Prosessor already at Pmode!$’
Bila anda kebetulan mempunyai sebuah komputer kosong yang tidak mempunyai OS, dengan menuliskan program tersebut di sektor 1, head 0 dan track 0, dan setting BIOS diganti menjadi boot from A. Maka BIOS akan langsung menjalankan program dan menganggap program tersebut sebagai Operating System. Sekali lagi saya ingatkan, hacking bukan cracking (seperti menjebol sebuah system dan sejenisnya). Program diatas saya tulis dengan menggunakan Emu8086 v.2.7. Terlihat diatas adanya sebuah variable dengan nama SMSW_AX dan LMSW_AX. Variabel tersebut memang sengaja saya buat, karena emu8086 yang saya pakai belum mendukung instruksi priviledge.
Saya jelaskan satu-persatu:
Org 100. Org singkatan dari Origin, perintah ini tidak mempunyai opcode atau hexcode. Perintah ini hanya akan menyuruh assembler atau kompiler untuk menyimpan program kita di alamat tertentu.
Jmp Start. Perintah ini akan melakukan lompatan ke CS+imm.
SMSW_CX. Ini adalah variabel yang mengandung opcode priviledge instruction untuk mengambil mode prosesor.
Mov ax,cx. Memindahkan nilai cx yang mengandung nilai Status mesin ke AX.
and al,1 Membatasi nilai al dengan satu, karena status mode terletak di Bit Nol.
cmp al,1 Membandingkan apakah nilai al adalah satu.
jz trs Jika ya loncat ke Label Trs.
inc cx Naikkan nilai CX sebanyak 1 saja.
lmsw_cx db 0fh,01,0f1h Menyimpan nilai ke Register CR0, atau set Status Mesin.
trs: ret Label dengan nama trs. Menyuruh prosesor untuk kembali ke pemanggil.
start: call CSPMode Melakukan Pemanggilan ke CSPMode.
cmp al,0 Membandingkan AL apakah Nol.
jz brs Jika ya beres.
mov ah,9 mov dx,offset tes int 21h Interupt Software, Tidak akan berjalan tanpa DOS. Fungsi asli sedang dibuat.
brs: ret Tes db ‘Prosesor sudah berada di P-Mode!$’ Untuk kembali dan variabel tulisan yang ditampilkan dengan int 21h fungsi 9h.
Catatan: Silahkan anda lihat OpCode-nya dibawah ini:
0100: EB 10 ó Jmp 0×112 0102: 0F 01 E1 ó SMSW CX 0105: 8B C1 ó Mov AX,CX 0107: 24 01 ó And al,1 0109: 3C 01 ó Cmp al,1 010b: 74 04 ó JZ 0×111 010d: 41 ó Inc CX 010E: 0F 01 F1 ó LMSW CX 0111: C3 ó Ret 0112: EB ED FF ó Call 0×102 0115: 3C 00 ó Cmp al,0 0117: 74 07 ó Jz 0×120 0119: B4 09 ó Mov al,9 011B: BA 21 01 ó Mov DX,offs [0x121] 011E: CD 21 ó Int x21 0120: C3 ó Ret ………………………. ………………………. ……………………….
Perintah pemanggilan fungsi ke 0×102, tidak ditulis EB 02 01, tetapi EB ED FF yang berarti –20 atau -0×14. Juga JZ. Maka baik perintah jump ataupun Call sama dengan CS+imm. Jika CS bernilai 101, dengan menuliskan 74 05 misalkan. Kita akan melompat ke alamat 106. Juga baik Call ataupun Jmp, menggunakan nilai Signed. Misalkan nilai 254 pada unsigned akan menjadi –2. Untuk lebih lengkapnya tentang un/signed, silahkan tanya saja ke Sto@jasakom.com , atau baca buku yang dikarang oleh orang yang sama.
Onan Farabi |














August 31, 2008 at 11:20 am
Find the software you’re looking for at http://www.software-mall.co.cc, the most comprehensive source for free-to-try software downloads on the Web.