Tulisan Dasar Cracking
Selamat Datang................. Cracker..........
Symbian Cracking :

Cellpoker

Tools:
------
IDA Pro v4.04 or higher, Aku pakai ver 4.30
Hex Editor, aku punya WinHex

Target:
-------
SymbianWare Cellpoker

Saatnya Kita Mulai:
-----------
Jalankan programnya. Amati semua yang ada dilayar.
Setelah itu...

Buka stacker.app dengan Hex Editor dan amati semua kode dan huruf ascii. Pada alamat pertama di offset 0x10 kamu akan melihat "EPOC" yang berarti file EPOC dipakai pada aplikasi Symbian OS.

Turun kebawah dan kamu akan menemukan beberapa Unicode string :

Sekarang kita lihat pada offset 0x1C934:

01C920 ····w·i·n···w·i·n···C·e·l·l·P·o·k·e·r··d·e·m·o·:···D·a·y·s· ·l·
01C960 e·f·t· ·····N·o· ·s·a·v·e·d··g·a·m·e···C·e·l·l·P·o·k·e·r· ·d·e·
01C9A0 m·o·············7·······mr··············.·······C·:·\·s·y·s·t·e·

Woohh! Kita menemukan teks yang tampil pada saat program dijalankan.
Catat alamatnya dan jalankan IDA...
Buka poker.app.
Tandai Load resources. Trus tekan OK!
Sekarang IDA menampilkan instruksi kode ARM.
Tandai opsi Options/General/Auto Comments untuk pemahaman kodenya.
Geser kebawah layarnya hingga kita sampai pada alamt yang kita catat tadi.

.text:1001C8B8 dword_0_1001C8B8 DCD 0x650043, 0x6C006C, 0x6F0050, 0x65006B, 0x200072, 0x650064
.text:1001C8B8 ; DATA XREF: sub_0_1000EC6C+148o
.text:1001C8B8 DCD 0x6F006D, 0x3A

Sekarang klik kanan pada :

.text:1001C8B8 unk_0_1001C8B8 DCB 0x43 ; C ;

DATA XREF: sub_0_1000EC6C+148o
.text:1001C8B9 DCB 0 ;
.text:1001C8BA DCB 0x65 ; e
.text:1001C8BB DCB 0 ;
.text:1001C8BC DCB 0x6C ; l
.text:1001C8BD DCB 0 ;
.text:1001C8BE DCB 0x6C ; l
.text:1001C8BF DCB 0 ;
.text:1001C8C0 DCB 0x50 ; P
.text:1001C8C1 DCB 0 ;
.text:1001C8C2 DCB 0x6F ; o
.text:1001C8C3 DCB 0 ;
.text:1001C8C4 DCB 0x6B ; k
.text:1001C8C5 DCB 0 ;
.text:1001C8C6 DCB 0x65 ; e
.text:1001C8C7 DCB 0 ;
.text:1001C8C8 DCB 0x72 ; r
.text:1001C8C9 DCB 0 ;
.text:1001C8CA DCB 0x20 ;
.text:1001C8CB DCB 0 ;
.text:1001C8CC DCB 0x64 ; d
.text:1001C8CD DCB 0 ;
.text:1001C8CE DCB 0x65 ; e
.text:1001C8CF DCB 0 ;
.text:1001C8D0 DCB 0x6D ; m
.text:1001C8D1 DCB 0 ;
.text:1001C8D2 DCB 0x6F ; o
.text:1001C8D3 DCB 0 ;
.text:1001C8D4 DCB 0x3A ; :
.text:1001C8D5 DCB 0 ;
.text:1001C8D6 DCB 0 ;
.text:1001C8D7 DCB 0 ;
...............................................(shortend)

Kode diatas adalah dalam format Hex
Sekarang kita masuk delam kodenya. Klik kanan pada

"DATA XREF: sub_0_1000EC6C+148o"

Pilih Jump dan klik OK.

text:1000EDB4 off_0_1000EDB4 DCD loc_0_1001C8B8 ; DATA XREF: sub_0_1000EC6C+BCr

Lakukan sekali lagi, klik kanan pada :

"DATA XREF: sub_0_1000EC6C+BCr"

Pilih Jump dan klik OK.
Akhirnya kita berada pada alamat

.text:1000ED28 LDR R1, =loc_0_1001C8B8 ; Load from Memory

Geser hingga sampai pada alamat

.text:1000EC6C sub_0_1000EC6C ; CODE XREF: sub_0_1000EBF8+64p
.text:1000EC6C STMFD SP!, {R4-R7,LR} ; Store Block to Memory
.text:1000EC70 SUB SP, SP, #0xC0 ; Rd = Op1 - Op2
.text:1000EC74 MOV R6, R0 ; Rd = Op2
.text:1000EC78 LDR R0, [R6,#0x17C] ; Load from Memory
.text:1000EC7C CMP R0, #0 ; Set cond. codes on Op1 - Op2
.text:1000EC80 LDRNE R3, [R0] ; Load from Memory
.text:1000EC84 MOVNE R1, #3 ; Rd = Op2
.text:1000EC88 LDRNE R12, [R3,#8] ; Load from Memory
.text:1000EC8C MOVNE LR, PC ; Rd = Op2
.text:1000EC90 TEQNEP PC, R12,LSL PC ; Set cond. codes on Op1 ^ Op2
.text:1000EC94 MOV R5, #0 ; Rd = Op2
.text:1000EC98 STR R5, [R6,#0x17C] ; Store to Memory
.text:1000EC9C ADD R7, R6, #0x180 ; Rd = Op1 + Op2
.text:1000ECA0 MOV R0, #0x88 ; Rd = Op2
.text:1000ECA4 BL loc_0_100164D8 ; Branch with Link
.text:1000ECA8 SUBS R4, R0, #0 ; Rd = Op1 - Op2
.text:1000ECAC BEQ loc_0_1000ECFC ; Branch

OK. Kita mulai pada alamat

.text:1000ECAC!

Sekarang kita catat offsetnya intruksi BEQ.
Note: 0xED28.
Keluar dari IDA kemudian buka di Hex Editor pada alamat 0xED28:

0000ED28 12 00 00 0A ?....

Ganti 0A to EA

0000ED28 12 00 00 EA ?...ê

Simpan perubahannya.
Test di hpmu...!

Gagal men...!

Kita ulangi lagi dari awal...

Pada bagian atas pada kode "CellPoker Demo:" text, ada sebuah "XREF"

.text:1000ECFC loc_0_1000ECFC ; CODE XREF: sub_0_1000EC6C+40j
.
.
.
.
.
.text:1000ED28 LDR R1, =dword_0_1001C8B8 ; Load from Memory

Klik kanan pada CODE XREF: sub_0_1000EC6C+40j"

Pilih Jump dan klik OK.

.text:1000ECAC BEQ loc_0_1000ECFC ; Branch

Alamat ini tadi yang kita rubah, jadi kita cari lagi.
Geser keatas sampai kita menemukan XREF lagi:

text:1000EC6C sub_0_1000EC6C ; CODE XREF: sub_0_1000EBF8+64p

Klik kanan pada "CODE XREF: ......"
Pilih Jump dan klik OK.

.text:1000EC5C BL sub_0_1000EC6C ; Branch with Link

sekarang yang harus kita lakukan adalah merubah "BL" menjadi: "B" atau "NOP"
Setelah 5 Xref jump, dan mengganti kodenya, ternyata notice nag telah hilang!!!!!

.text:1000EAE8 BL sub_0_1000EBF8 ; Branch with Link

Sudah beres....???!
Ternyata setelah 10 hari pemakaian programnya akan terkunci.!

Saatnya mencari lagi, setelah mengganti kelima XREF dengan NOP, kita masih harus melihat pada:

.text:1000EADC CMP R0, #9 ; Set cond. codes on Op1 - Op2
.text:1000EAE0 BHI loc_0_1000EB44 ; Branch
.text:1000EAE4 MOV R0, R6 ; Rd = Op2
.text:1000EAE8 BL sub_0_1000EBF8 ; Branch with Link

Mengapa program harus mengecek R0 = 9?

Setelah 10 hari (0=Day1, 9=Day10)
Branch akan menjadi lebih besar dari 9 (hari) yang berarti true!

Ok, kita buat NOP aja.
Catat offsetnya: EB5c
Tutup IDA (jangan disimpan), trus buka Hex Editor.
Lihat pada offset:

0000EB5C 17 00 00 8A ?....

Ganti menjadi:

0000EB5c 12 00 00 EA ...áß

Yang berarti mov r0,r0 atau NOP

Masukkan poker.app ke Hpmu dan No Nag, No Expiry!!!

WebMaster
Terus      Kembali
Komentar dan Mailing List
Crack One Software Every Day Make You The Real Cracker