2011. 5. 21. 12:30

ㅡㅡ;; 3일을 뻘짓했네 아놔..... 이눔에 고난의 길.... 
attach 해놓고 백날 수정하면 ㅡㅡ;;
수정된 이미지가 먹히냐!! ㅡㅡ;; (띵킹을 좀 하자 ㅡㅡ;;)


__text:00005434                 BLX     _objc_msgSend
__text:00005438                 LDR     R1, =(off_3472C8 - 0x5440)
__text:0000543A                 LDR     R2, =(cfstr_Ahn_3379024345 - 0x5442)
__text:0000543C                 ADD     R1, PC
__text:0000543E                 ADD     R2, PC          ;
__text:00005440                 LDR     R1, [R1]
__text:00005442                 STR     R0, [SP,#0x88+var_74]
__text:00005444                 BLX     _objc_msgSend   ; --2011/05/21(토) hElLoOnG--
__text:00005444                                         ; 요기서 탈옥 루틴 검사후 R0 레지스터에 결과값 반영!!
__text:00005444                                         ; 결과값은 탈옥인경우 R0 = 1, 아닌경우 R0 = 0
__text:00005444                                         ;
__text:00005444                                         ; 위의 결과를 아래에서 CMP R0, #1로 판별후, CPSR컨디션
__text:00005444                                         ; 에따라서 BNE(Not Equal)이면 OFFSET 5546으로 분기!!
__text:00005444                                         ;
__text:00005444                                         ; 또한 5546으로 분기후에 한번더 CMP.W R0, 0xFFFFFFFF
__text:00005444                                         ; 으로 R0값을 한번더 판별한다.
__text:00005444                                         ;
__text:00005444                                         ; 그럼 가장 수정폭이 작게 하려면.. 어차피 R0에 1이
__text:00005444                                         ; 들어 있는 상황이므로, 이는 아래 비교 루틴에서도
__text:00005444                                         ; 다른 값이다. 따라서 CMP R0, #1을 #1이 아닌 다른 값
__text:00005444                                         ; 으로 수정해서 이 로직만 통과 하면 자동으로 아래
__text:00005444                                         ; 비교 구문은 우회 할 수 있다. 따라서 우리의 목표
__text:00005444                                         ; 지점인 OFFSET 565c에 도달 할 수 있다.
__text:00005448                 CMP     R0, #1
__text:0000544A                 BNE     loc_5546
__text:0000544C                 LDR     R0, =(unk_348DB8 - 0x5456)
__text:0000544E                 LDR     R1, =(off_3472C4 - 0x5458)
__text:00005450                 LDR     R6, =(cfstr_Jailbreakmsg - 0x545E)
__text:00005452                 ADD     R0, PC
__text:00005454                 ADD     R1, PC

그럼 CMP R0, #1의 OPCODE(0x2801)를 CMP R0, #0(0x2800)으로 바구면 끝!!

Posted by 땡보