2011. 8. 15. 08:07

음.. 간만에 쉬는 날이니까.. 오늘도 하나 투척~!

같은 계열사 임에도 불구하고 신한은행, 신한카드 등 다른 어플과는 약간 다른 로직이네요..

개발 외주를 다른데 줬나 ㅡㅡㅋ

아무튼... 신한굿아이는 바로 요부분에서 검사를 해서 분기하네요~


음.. CBZ네용?

지금 조기 노랭이 부분에서 또로로록 점선화살표를 따라가면 굿아이 앱이 좔좔좔좔 잘 돌아가고,
점선을 안따라가믄 "순정이 아니네 홈버튼이 어쩌네 기타 궁시렁 궁시렁...ㅁ나어" 하면서 뒈지는데요..

그럼 요기서 잠깐 쓸데없는 ARM/thumb instruction set을 알아보죵..

CBZ 또는 CBNZ의 syntax는

CBZ [비교되어질 레지스터], 분기할 OFFSET
CBNZ [비교되어질 레지스터], 분기할 OFFSET

으로 이루어 지는데...

CBZ는
CMP [비교되어질 레지스터], #0
BEQ  분기할 OFFSET
과 같고
CBNZ는
CMP [비교되어질 레지스터], #0
BNE 분기할 OFFSET
과 같아부린거죵..

고래면..

지금 조짝에서 딱 보믄... 비교되어질 레지스터는 R5가 될끼고
R5가 0과 같으면 또로로로록 점선을 따라서 살텐데....
R5가 0이 아니면 궁서렁 구렁텅이로 빠지겠네용..

여하튼 결론은 좌우당간... 요놈에 앱을 기냥 탈옥폰에서도 팽팽 쓸라믄
0x33EC까지 진행혔을때 R5에 0이 있던가,
아니믄 0x33EC를 기냥 기냥 B라는 무식한 눔으루다가 대체를 하던가 기냥
뭐 방법이야 개성대로~

글구 엄청나게 휘황찬란하고 뽠따스틱한 ARM의 세상에 대하여 완죤하게 알고싶으신 분은 요리로..

ARM Information Center : http://infocenter.arm.com/help/index.jsp

숑숑..


Posted by 땡보