01 Agustus 2010

Mengextract dan Mengganti Gambar Tema Mig33

Mig33 java merupakan aplikasi yang banyak digunakan oleh teman" khususnya pengguna Handphone yang memiliki system JAVA serta pengguna PC dengan bantuan emulator aplikasi java mobile tentunya, yang mana dengan Mig33 ini, maka antara satu user dan lainnya bisa saling berhubungan dan berinteraksi dengan user lainnya dalam suatu Rom Chatting plus beberapa aplikasi tambahan lagi yang dikembangkan oleh Mig33 sendiri termasuk diantaranya Game Online via HP.


Yang namanya aplikasi tentunya untuk mempercantik tampilannya agar tidak terkesan monoton, maka Mig33 ini dilengkapi dengan sebuah theme, serta gambar" yang mendukung aplikasi Mig33 itu sendiri.

Tema Mig33 bisa kita edit atau rubah sesuai dengan keinginan atau kreatifitas masing", dan cara mengedit tema mig33 udah banyak dibahas oleh teman" blogger ataupun teman" diforum-forum Mig33.

Dan pada postingan ini saya mencoba menguraikan bagaimana caranya mengganti gambar" Mig33 yang bisa kita trapkan dalam Mengganti gambar Mig33 versi 4 dan kemungkinan untuk versi selanjutnya.Tujuan trik ini tidak lain agar tampilan aplikasi Mig33 lebih user friendly atau lebih sesuai dengan karakter pengguna Mig33 itu sendiri, serta trik ini kemungkinan bisa kita trapkan juga dalam mengedit aplikasi baik itu yang jalan di SmartPhone, Komputer, Game Console, ataupun prangkat lainnya yang mempunyai tehnik struktur pembuatan program yang sama.

Trik ini tidak membutuhkan skill pemrograman, karena yang kita edit bukan source code mentah dari programnya, melainkan file pendukung aplikasi yang sudah jadi yang kita edit menggunakan software Hex Editor, jadi sebelum mencoba trik ini, maka sebaiknya teman" mempersiapkan dulu software Hex editor yang terinstal di komputernya sebagai basis kita dalam menerapkan trik ini.

Sebelum memulai membahas inti dari postingan ini, terlebih dahulu kita mencoba memahami tentang apa itu Hexadecimal, Decimal, Format code gambar, serta Paket Mig33 sendiri yang saya dapat dari surfing via Google, Dan Sorry sumber atau autor tulisan ini tidak saya cantumkan, berhubung karena banyaknya sumber tulisan yang sama percis (Copas).

Bilangan Desimal (Decimal)
Sistem bilangan desimal adalah sistem bilangan yang menggunakan 10 macam angka dari 0,1,sampai 9. Setelah angka 9, angka berikutnya adalah 1 0, 1 1, dan seterusnya (posisi di angka 9 diganti dengan angka 0, 1, 2, .. 9 lagi,
tetapi angka di depannya dinaikkan menjadi 1). Sistem bilangan desimal sering dikenal sebagai sistem bilangan berbasis 10, karena tiap angka desimal menggunakan basis (radix) 10.

Jadi singkatnya bilangan desimal adalah bilangan yg qta pake sehari2 bwt menghitung. Abis 9 ya 10, slnjtnya 11, kemudian 12, lalu 13, stlh itu 14..

Bilangan Heksadesimal (Hexadecimal)
Heksadesimal atau sistem bilangan basis 16 adalah sebuah sistem bilangan yang menggunakan 16 simbol. Berbeda dengan sistem bilangan desimal, simbol yang digunakan dari sistem ini adalah angka 0 sampai 9, ditambah dengan 6 simbol lainnya dengan menggunakan huruf A hingga F.
Sebagai contoh urutan bilangan dlm desimal dan heksadesimal:

Desimal :

0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, dst.

Heksadesimal :

00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, dst.

Bilangan heksadesimal selalu dituliskan dlm bentuk 2 digit simbol, ky 01,04, 0A, 0E dsb. Tapi klo simbol diawalnya adalah angka nol (0), maka biasanya penulisannya bisa dgn 1 digit. Mislnya 0F hanya dituliskan dgn F aja. Trus pengelompokannya jg bisa digabung ato dipisah. Mislnya 0E 0F ato 0E0F. Ky yg gw bilng td, maka penulisan 0E0F bisa jg dituliskan dgn E0F, krn simbol angka nol (0) yg diawal tu ga ngaruh. Jd klo lo nemu bilangan hexadesimal yg jumlah digitnya ganjil, brarti simbol paling awal adlh angka nol (0). Contohnya klo lo nemu bilangan heksadesimal 3F4A076, maka sbnrnya adlh 03F4A076.

Skrg gmn caranya mengetahui brp bilangan heksadesimalnya klo mislnya dlm bilangan desimalnya diketahui angka 21132?
Ada rumusnya, tp ga usah qta pake rumus ribet itu. Qta pake kalkulator aja biar gmpng. Jalankan aplikasinya dari


Start > Programs > Accesorries > Calculator.

Trs ganti tampilannya jd Scientific (View > Scientific). Isi angka 21132 di kalkulatornya trs pencet pilihan Hex ky gmbr dbwh ini.


Maka kalkulator akan mengkonversikan bilangan desimal 21132 ke heksadesimal, hasilnya yaitu 528C. Begitu jg sebaliknya klo lo pgn tau brp bilangan desimalnya klo diketahui bilangan heksadesimalnya adlh 528C. Tinggl klik aja pilihan Hex trs isi 528C, abis tu klik pilihan Dec. Maka hasilnya dlm desimal adlh 21132. Skrg cb lo isi angka 3599 dlm desimal dan konversikan ke heksadesimal. Maka hasilnya adlh E0F, yg sbnrnya adlh 0E0F ky yg gw bilng sblmnya. Kalkulator ga menampilkan simbol nol (0) diawalnya krn ga ngaruh. Nah prinsip ini hrs lo pegang bwt nanti qta pake dlm praktek modifikasi ini.

Format File Gambar

Setiap format file memiliki header ato bagian permulaan yg menyimpan informasi ttg file itu. File gambar jg punya header. Dari header nya ini qta bisa tau format apa gambar itu. Dlm modifikasi qta ini gw cm akan memperkenalkan header 2 format gambar aja, yaitu png dan jpg. Itu jg ga terlalu mendetil, yg penting qta cukup tau aja awal (Start of Image/SOI) dan akhir (End of Image/EOI) file gambar itu.

Format PNG
SOI = 89 50, EOI = 60 82
Format JPG
SOI = FFD8, EOI = FF D9

Tapi ga smua yg berawalan FF D8 adlh file jpg. Bwt lbh pastinya lo liat dibagian ASCII apakah ada text JFIF. Liat gmbr dbwh ini.


Paketmig33

Paket mig33 adalah kumpulan data yg dikirimkan oleh server mig33 maupun yg qta kirimkan ke server mig33. Sbnrnya qta ga perlu tau ttg paket mig33 ini. Tapi berhubung file yg mau qta modif strukturnya sm dgn paket mig33, maka qta lbh baik tau dikit lah. Qta akan membahas paket mig33 dlm bentuk heksadesimal, yg slnjtnya akan gw sebut dgn hex aja. Paket mig33 selalu diawali (header) dgn 9 bilangan hex, ato bisa jg disebut dgn 9 bytes. 9 hex ato 9 bytes ini, khususnya hex/byte ke-6 s/d ke-9 menunjukkan brp panjang (ukuran) keseluruhan paket itu, yg penghitungannya dimulai dr hex/byte ke-10. Untuk jlsnya gw kasi contoh mislnya bgini:

Paket mig33:
02 03 E8 00 00 00 00 00 0F 00
88 00 00 00 04 00 00 38 4B 01 0F 76 75 67

02 mewakili 1 byte, sm halnya dgn 03 E8 00 dan hex lainnya. Byte ke-1 adlh 02, byte ke-2 adlh 03, byte ke-3 adlh E8 dst. Pratiinyg gw tebelin itu (02 03 E8 00 00 00 00 00 0F) adalah 9 bytes pertama yg disebut sbg header nya paket mig33.
Trus yg gw warnain merah itu (00 00 00 0F) adalah byte ke-6 s/d ke-9 yg menunjukkan panjang keseluruhan paket, dihitung mulai dr byte ke-10, yaitu yg berwarna ijo (00), smpe ke byte paling akhir.


Jadi dah jelas klo paket diatas pjg keseluruhannya adlh 00 00 00 0F. Brp bilangan desimalnya? Itung lg pake kalkulator. Hasilnya adlh 15. Itu berarti mulai dr byte ke-10 yg warna ijo itu sampe ke akhir paket, ukurannya adlh 15 bytes. Apakah itu adlh ukuran totalnya? Belum. Totalnya adlh 15 + 9 = 24 bytes. Drmn tuh angka 9? Itu adlh jmlh byte header nya. Inget td qta dapet hasil 15 itu dgn menghitung mulai dr byte ke-10, bkn dr byte ke-1, jd totalnya ya hrs qta tmbhin 9 dl.

Oke, cukup sgitu aja yg perlu qta ketahui bwt keperluan modifikasi ini. Gw harap lo ngerti ttg bagian ini coz gw ga tau lg cara jelasin yg lbh gmpng lg..

(Jika kebetulan autor tulisan yang saya copas diatas membaca postingan ini, dan ingin dicantumkan nama usernya dipage ini, silahkan tulis di shoutbox nama dan web sumber tulisannya, Makasi...)

Pada tulisan diatas sudah dijelaskan tentang format file gambar PNG dan JPG serta kode Hex awal dan kode Hex akhir, dan kedua format gambar tersebutlah yang digunakan oleh standar Mig33 versi 4 pada saat tulisan ini saya posting, tapi kita msih bisa menggunakan format gambar pengganti yang lain umpamanya Gif, yang mana untuk format Gif ini kode Hexnya adalah.

Format GIF
SOI = 47 49, EOI = 00 3B

Contoh kode gambar gif ini jika dilihat pake Hex editor seperti pada contoh gambar dibawah ini.


Pada gambar diatas terlihat kalau kode awal hex untuk gambar Gif adalah 47 49 dengan keterangan pada bagian ASCII tertulis GIF, sementara untuk kode akhirnya adalah 00 3B. Jadi mulai dari kode 47 49 sampai dengan kode 00 3B merupakan bagian kode 1 gambar dengan format GIF.

Okley.... Teman, Udah punya gambaran khan tentang apa itu Hexa serta kode" Hexa setiap gambar yang akan kita gunakan dalam mengedit gambar Theme Mig33 ini.

Sekarang kita lanjutkan bagaimana mencari tau gambar" apa saja yang digunakan oleh aplikasi Mig33 yang akan kita edit gambarnya.

Untuk mengedit gambar" theme pada aplikasi java yang berektensi JAR, maka sebelumnya kita extract dulu menggunakan aplikasi semacam Winrar atau sejenisnya, dan setelah diextract akan mendapatkan beberapa file, dan diantaranya file yang memuat theme berikut gambar"nya biasanya dengan nama file default_v2 atau default_theme, atau untuk lebih jelasnya buka/periksa aja file" yang dicurigai di Hex Editor, dan jika itu file yang memuat gambar", maka pada awal kode Hexnya akan memuat kode gambar, umpamanya PNG atau kode" gambar lainnya seperti yang sudah dijelaskan diatas.

Seperti pada contoh gambar dibawah untuk Mig33 versi 4.20 ini file yang memuat gambar" theme jika dibuka di Hex editor.


Setelah kita sudah mendapatkan file yang memuat gambar" temanya, maka langka selanjutnya adalah mencari gambar" apa saja yang digunakan dan berapa banyak gambar yang dimuat pada file tersebut dengan cara.

Seblumnya khan sudah dijelaskan code" dari setiap gambar, maka kita mencari gambarnya dengan berpedoman pada kode" tersebut dengan cara:

Umpamanya kita mencari dulu gambar jenis PNG dengan kode Hex 89 50, maka tekan CTRL+F atau klik kanan mouse dan klik Find seperti pada contoh gambar dibawah ini.


Kemudian dikotak Find pada Type pilih Hex values dan pada Value isi kode hex awal gambar yang ingin dicari dalam hal ini 8950, dan centang pada kotak Find All Instances, seperti pada contoh gambar dibawah ini.


Selanjutnya klik OK, dan jika gambar yang dicari ada, maka akan ditampilkan seperti pada contoh gambar dibawah ini.


Pada gambar diatas terlihat kalau untuk kode PNG dengan kode hex 8950 didapat 7 gambar dimana untuk alamat offset dari setiap kode Hexnya yaitu: 23, 9F, 64E, 10E1, 115D, 358B, 4AA1.

Karena pada contoh ini gambarnya sudah kita dapat berikut alamat offsetnya, untuk selanjutnya alangka baiknya jika tiap gambarnya kita extract keluar dulu, tujuannya disamping untuk mengetahui ukuran pixel tiap gambar, kita juga bisa mengetahui lebih jelas lagi gambar" yang nantinya akan kita ganti, dan cara mengextract tiap" gambarnya sebagai berikut.

Kita mulai dari gambar pertama offset 23, tekan CTRL+G atau klik kanan mouse kemudian klik Goto >> Offset, dan pada kotak Goto kita isi dengan offset yang kita tuju, dalam hal ini adalah 23, dan centang pada Hex, seperti pada contoh gambar dibawah ini.


Klik Go, dan posisi cursor akan berada pada offset yang dituju seperti gambar dibawah ini.


Selanjutnya kita cari lagi posisi akhir dari code gambarnya. Dan untuk kode akhir gambar PNG seperti yang sudah dijelaskan diatas yaitu 60 82,

Tekan CTRL+F dan masukkan kode akhir gambar yang dicari, dalam hal ini adalah 6082, dan untuk Type pilih Hex Values dan Find All Instances tidak dicentang, seperti pada contoh gambar dibawah ini.


Klik OK, maka cursor akan ditempatkan pada 2 kode hex akhir gambarnya, seperti pada contoh gambar dibawah ini.


Sekarang kita cari lagi kode offset terakhirnya dengan mengklik pada kode trakhir dalam hal ini adalah 82, dan akan seperti gambar dibawah ini.


Okley... Seperti pada contoh gambar diatas kalau offset terakhir code hex gambarnya sudah kita dapat juga yaitu 98.

Jadi pada contoh ini untuk gambar pertama kita dapat dengan data sebagai berikut

Gambar Pertama dengan format PNG pada posisi offset hex mulai dari 23 sampai dengan 98

Karena kita sudah mengetahui posisi kode gambarnya, maka selanjutnya kita select atau tandai mulai dari offset 23 sampai dengan offset 98 dengan cara.

Kembalikan dulu posisi cursor ke offset awal yakni 23 seperti cara kita sebelumnya yaitu dengan menekan CTRL+G, kemudian masukkan 23 sepeti pada contoh gambar dibawah ini.


Klik Go, dan posisi cursor akan berada pada offset yang dituju, setelah itu klik Edit >> Select Block seperti pada contoh gambar dibawah ini.


Setelah itu isi keterangan sesuai dengan offset terakhir yang akan kita tandai, dalam hal ini adalah 98, seperti pada contoh gambar dibawah ini.


Klik OK, maka mulai dari posisi cursor dalam hal ini adalah offset 23 sampai dengan offset 98 akan ditandai seperti gambar dibawah ini.


kita copy dengan menekan CTRL+C atau klik kanan mouse diarea terseleksi, kemudian klik Copy, seperti pada contoh gambar dibawah ini.


Kemudian kita paste pada file baru dengan menekan CTRL+N atau klik File >> New, seperti pada contoh gambar dibawah ini.


Setelah itu akan terbuka File baru seperti pada contoh gambar dibawah ini.


Kemudian kita paste pada file baru ini dengan menekan CTRL+V atau klik kanan mouse trus klik Paste seperti pada contoh gambar dibawah ini.


Selanjutnya pada contoh ini akan seperti gambar dibawah ini.


Kemudian disave dengan menekan CTRL+S atau klik logo Disket seperti gambar diatas, dan disimpan dengan nama file sembarang dengan extensi sesuai dengan format header gambarnya, dalam hal ini adalah PNG.

Dan pada contoh ini gambarnya saya simpan pada folder Mig33v42 dengan nama file Pertama.png, seperti pada contoh gambar dibawah ini.


Okley... satu gambar sudah selesai kita extract, dan pada contoh ini gambarnya seperti dibawah ini.


Nah... Udah taukan kalau pada posisi offset 23 sampai 98 gambarnya berukuran 6x6 pixel dengan besar file 118 bytes dan gambarnya seperti diatas.

Selanjutnya extract lagi gambar kedua sampai dengan gambar ketujuh dengan cara seperti yang sudah diuraikan diatas, dan untuk mempermudah teman", maka pada contoh file yang saya edit ini untuk offset dari gambar kedua sampai gambar ketujuh sebagai berikut :

  • Gambar Kedua dengan format PNG pada posisi offset hex mulai dari F9 sampai dengan 647
  • Gambar Ketiga dengan format PNG pada posisi offset hex mulai dari 64E sampai dengan 10DA
  • Gambar Keempat dengan format PNG pada posisi offset hex mulai dari 10E1 sampai dengan 1156
  • Gambar Kelima dengan format PNG pada posisi offset hex mulai dari 115D sampai dengan 2595
  • Gambar Keenam dengan format PNG pada posisi offset hex mulai dari 358B sampai dengan 48C4
  • Gambar Ketujuh dengan format PNG pada posisi offset hex mulai dari 4AA1 sampai dengan 4EFF

Dan setelah semua gambarnya sudah diextract akan seperti pada contoh dibawah ini.


Untuk mengetahui ukuran pixel gambarnya, tinggal letakkan pointer mouse pada gambarnya, dan setelah itu akan muncul keterangan ukuran pixel dan besar filenya, sementara untuk mengetahui berapa bytes besar filenya, maka klik kanan pada gambarnya trus klik Properties, dan akan muncul keterangan gambarnya seperti pada contoh gambar dibawah ini untuk properties gambar Ketiga.png


Okley.... Sekarang kita lanjutkan lagi mencari format gambar lainnya.

1 komentar:

  1. Agak Bikin mumet juga ya Gan...
    soalnya saya blom paham bahasa pemrograman

    Kalau saya, biasanya edit file gambar pada aplikasi java dengan mengganti langsung gambar pada aplikasi dgn gambar sendiri, dengan nama dan ukuran yg sama. tentu saja setelah extensi file .jar kita ganti menjadi .zip atau .rar lalu file Aplikasi kita extract menggunakan WinRaR. tampaklah semua file, termasuk file gambar. kita tinggal edit atau ganti

    Pertanyaan saya Gan..
    Bisa ngga kasih kita tutorial cara ganti gambar background pada file .ELF

    TxQ Gan..

    Wassalam...

    BalasHapus
Catatan: (cara menyisipkan item pada komentar)
Menyisipkan video = <i rel="youtube">URL YOUTUBE</i>
Menyisipkan gambar = <i rel="image">URL GAMBAR</i>
Menyisipkan kode = <i rel="code">KODE</i>
Menyisipkan kode panjang = <i rel="pre">KODE</i>
Menyisipkan judul = <b rel="h3">JUDUL ANDA</b>
Menyisipkan catatan = <b rel="quote">CATATAN</b>
Menyisipkan link = <a href="URL LINK">KETERANGAN</a>
Efek tulisan tebal = <strong>TEKS ANDA</strong>
Efek tulisan miring = <em>TEKS ANDA</em>

Satrio Bahar © 2008 Template by SkinCorner
Gunakan Mozilla Firefox untuk Optimalkan Tampilan Blog Ini