voidunknown
June 17th, 2005, 12:38
I'm new to the forums, and to Windows CE Cracking. I'm working on a GPS program. So, I loaded my program into IDA Pro, found the serial check spot, changed a BEQ to B. Started the program on my PPC and it seemed to work. However, when the program is cracked, it works for 3 minutes (180 seconds) and then DROPS the GPS signal. I know it's not the receiver, its the program refusing GPS information. Anyone have any ideas? Here is the code:
I changed:
.text:000E6ADC BEQ loc_E6B7C ; Branch
TO
.text:000E6ADC B loc_E6B7C ; Branch
I changed:
.text:000E6ADC BEQ loc_E6B7C ; Branch
TO
.text:000E6ADC B loc_E6B7C ; Branch
Code:
.text:000E6A84 loc_E6A84 ; CODE XREF: sub_E61A0+90Cj
.text:000E6A84 ADD R0, SP, #0x6744+var_6714 ; Rd = Op1 + Op2
.text:000E6A88 LDRB R1, [R4,R0] ; Load from Memory
.text:000E6A8C SUB R0, R3, #1 ; Rd = Op1 - Op2
.text:000E6A90 SUBS R3, R3, #1 ; Rd = Op1 - Op2
.text:000E6A94 MOV R2, R1,LSL R0 ; Rd = Op2
.text:000E6A98 MOV R1, R5,LSL#16 ; Rd = Op2
.text:000E6A9C ORR R0, R2, R1,LSR#16 ; Rd = Op2 | Op1
.text:000E6AA0 MOV R2, R0,LSL#16 ; Rd = Op2
.text:000E6AA4 MOV R5, R2,LSR#16 ; Rd = Op2
.text:000E6AA8 ADD R4, R4, #1 ; Rd = Op1 + Op2
.text:000E6AAC BNE loc_E6A84 ; Branch
.text:000E6AB0 CMP R4, #0x10 ; Set cond. codes on Op1 - Op2
.text:000E6AB4 BLT loc_E6A7C ; Branch
.text:000E6AB8 MOV R0, #0xB ; Rd = Op2
.text:000E6ABC BL sub_C23A4 ; Branch with Link
.text:000E6AC0 MOV R1, #0xB ; Rd = Op2
.text:000E6AC4 MOV R7, R0 ; Rd = Op2
.text:000E6AC8 BL sub_2D7800 ; Branch with Link
.text:000E6ACC MOV R0, R6,LSL#16 ; Rd = Op2
.text:000E6AD0 MOV R3, R5,LSL#16 ; Rd = Op2
.text:000E6AD4 MOV R1, R0,LSR#16 ; Rd = Op2
.text:000E6AD8 CMP R1, R3,LSR#16 ; Set cond. codes on Op1 - Op2
.text:000E6ADC BEQ loc_E6B7C ; Branch
.text:000E6AE0 LDR R1, =unk_34FA4C ; char *
.text:000E6AE4 LDR R0, =unk_34FA40 ; char *
.text:000E6AE8 BL fopen ; Branch with Link
.text:000E6AEC MOV R4, R0 ; Rd = Op2
.text:000E6AF0 LDR R0, =unk_34FA38 ; void *
.text:000E6AF4 MOV R3, R4 ; FILE *
.text:000E6AF8 MOV R2, #6 ; size_t
.text:000E6AFC MOV R1, #1 ; size_t
.text:000E6B00 BL fwrite ; Branch with Link
.text:000E6B04 MOV R0, R4 ; FILE *
.text:000E6B08 BL fclose ; Branch with Link
.text:000E6B0C ADD R0, SP, #0x6744+var_66B4 ; Rd = Op1 + Op2
.text:000E6B10 BL sub_2DFED4 ; Branch with Link
.text:000E6B14 ADD R0, SP, #0x6744+var_66EC ; Rd = Op1 + Op2
.text:000E6B18 BL sub_2DFED4 ; Branch with Link
.text:000E6B1C LDR R0, [SP,#0x6744+var_6730] ; Load from Memory
.text:000E6B20 BL sub_C23AC ; Branch with Link
.text:000E6B24 LDR R0, [SP,#0x6744+var_671C] ; Load from Memory
.text:000E6B28 BL sub_C23AC ; Branch with Link
.text:000E6B2C LDR R0, [SP,#0x6744+var_6734] ; Load from Memory
.text:000E6B30 BL sub_C23AC ; Branch with Link
.text:000E6B34 LDR R0, [SP,#0x6744+var_6738] ; Load from Memory
.text:000E6B38 BL sub_C23AC ; Branch with Link
.text:000E6B3C MOV R0, R11 ; Rd = Op2
.text:000E6B40 BL sub_C23AC ; Branch with Link
.text:000E6B44 MOV R0, R10 ; Rd = Op2
.text:000E6B48 BL sub_C23AC ; Branch with Link
.text:000E6B4C MOV R0, R9 ; Rd = Op2
.text:000E6B50 BL sub_C23AC ; Branch with Link
.text:000E6B54 MOV R0, R7 ; Rd = Op2
.text:000E6B58 BL sub_C23AC ; Branch with Link
.text:000E6B5C MOV LR, #0xA ; Rd = Op2
.text:000E6B60 MOV R9, LR ; Rd = Op2
.text:000E6B64 STR LR, [SP,#0x6744+var_673C] ; Store to Memory
.text:000E6B68 MOV R0, R9 ; Rd = Op2
.text:000E6B6C MOVL R12, 0x6720
.text:000E6B74 ADD SP, SP, R12 ; Rd = Op1 + Op2
.text:000E6B78 LDMFD SP!, {R4-R11,PC} ; Load Block from Memory
.text:000E6B7C ; ---------------------------------------------------------------------------
.text:000E6B7C
.text:000E6B7C loc_E6B7C ; CODE XREF: sub_E61A0+93Cj
.text:000E6B7C MOV R0, #0x34 ; Rd = Op2
.text:000E6B80 BL sub_C23A4 ; Branch with Link
.text:000E6B84 MOV R1, #0x34 ; Rd = Op2
.text:000E6B88 MOV R4, R0 ; Rd = Op2
.text:000E6B8C BL sub_2D7800 ; Branch with Link
.text:000E6B90 LDR R0, [SP,#0x6744+var_6730] ; Load from Memory
.text:000E6B94 MOV R2, #0x34 ; size_t
.text:000E6B98 MOV R1, R0 ; void *
.text:000E6B9C MOV R0, R4 ; void *
.text:000E6BA0 BL memcpy ; Branch with Link
.text:000E6BA4 LDR R0, [SP,#0x6744+var_6728] ; void *
.text:000E6BA8 MOV R2, #0x35 ; size_t
.text:000E6BAC MOV R1, #0 ; int
.text:000E6BB0 BL memset ; Branch with Link
.text:000E6BB4 LDR R5, [SP,#0x6744+var_6738] ; Load from Memory
.text:000E6BB8 LDR LR, [SP,#0x6744+var_6728] ; Load from Memory
.text:000E6BBC MOV R2, #0x34 ; Rd = Op2
.text:000E6BC0 LDR R6, [SP,#0x6744+var_6734] ; Load from Memory
.text:000E6BC4 MOV R3, #0x31 ; Rd = Op2
.text:000E6BC8 SUB R1, R10, LR ; Rd = Op1 - Op2
.text:000E6BCC