[Mobile]New KXB 분석 후기
ㅡㅡ;; 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)으로 바구면 끝!!