아이폰을 작년즈음에 루팅을 했었다. 루팅을 해서 좋은점도 있고 재미난 점도 많이 있는데 모든 루팅 한사람들이 생각하는 불편한 점 1순위는 은행 앱이 차단되는 현상이 아닐까 싶다.
심지어 작년 11월달부터 우리은행앱은 최신 펌웨어 버전이 아닌 유저는 사용이 불가능하다. 앱스토어에는 6+ 를 지원한다고 되어있는데..
고칠 생각은 하지않고 별점조작을 하고 있다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ(웃고있지만 제발고쳐내라고!)
루팅을 포기하진 못하겠고 은행앱은 써야겠고.. 이럴때 가장 많이 쓰는 트윅이 Cydia 에서 받을 수 있는 tsProtector 인것으로 보인다.
tsProtector을 깔게되었고 설정창에서 기능을 활성화 시켜주었다.
< Figure 1. 루팅을 숨겨주는 대표 트윅 tsProtector >
그 후에는 국민은행,ISP 모바일결제,NH투자증권 등등 모두다 잘쓰고 있었다. 그런데 여자친구가 추천해준 SC은행이 제공하는 리워드 360 카드를 발급받았고 적립 포인트를 확인하기 위해 SC은행 앱인 'Breeze' 를 설치하였다.
< Figure 2. 루팅 하지마 빼애애애액 >
설치한 SC은행 앱을 실행했으나, 이 앱은 'tsProtector' 가 효력을 내지 못했다. :( 저번 포스팅에 싣었던 대로 아이폰만을 이용해 앱덤프를 이용해 원본 바이너리를 추출했다. 추출한 바이너리를 열어서 분석을 시작했다.
추출한 바이너리를 어떻게 데스크탑으로 가져와서 분석했고, 수정한뒤 어떻게 밀어넣었는가는 저번 포스팅에 없었으나 이 글을 쓰는 시점에 추가 하였습니다.
---------------------------------------------
TIP.
프로그램 전달
아이폰 -> 윈도우
같은 네트워크에 물려있는 상태에서 터미널에 "python -m SimpleHTTPServer" 명령으로 서버를 열어준뒤, 윈도우에서 브라우저를 통해 받으면 된다.
윈도우 -> 아이폰
윈도우 서버를 열거나 호스팅 되어있는 서버에 올려놓고 wget 명령어로 받으면 된다.
이를 통하면 맥북 없이도 충분한 분석이 가능하다.
---------------------------------------------
< Figure 3. 잡았다 요놈! >
IDA 에 올려 분석을 시작했고 분기문을 찾아냈다. 0x1472EE 지점의 점프문을 바꾸면 되지 않을까 싶어 수정했으나 한국어로 뜨던 메시지가 영어로 떴다. 읔엨.. 그 위에 있는 분기문인 0x001472CA 지점을 변경시켜야 할 것이라고 판단했고 이를 바꾸려고 했으나 ARM문법의 특성상 일반적으로 OPCODE가 2byte인데 4byte를 쓰는 상황이었다. ARM 문법을 즉석으로 공부해서 알맞게 OPCODE를 수정 하는데 성공했다.
※ 2byte로 표현할 수 있는 거리 이상을 분기할경우에 .W 가 붙는 문법이며 4byte를 쓴다.
< Figure 4. B.W 문법으로 강제로 점프하도록 변경 >
비교구문에 상관없이 점프를 하는 B.W 명령어로 패치하는데 성공했고 바이너리를 폰으로 밀어넣는 일만 남았다. 0x1472CE 지점부턴 해석엔진이 꼬여서 제대로 결과를 못내 주는것 같다.
< Figure 5. 아이폰으로 바이너리 밀어넣기! >
컴퓨터->아이폰으로 바이너리를 다시 밀어넣는데 성공했다. 기본적으로 아이폰 앱은 암호화가 되어있어 덤프를 떠서 원본 바이너리를 얻은것인데 다시 암호화를 해주지 않아도 적용이 된다. 이러니까 모두들 루팅하세요! 밀어넣기만 하면 문제가 생기므로 다시 권한도 RWX(777)를 주었다.
< Figure 6. 은행 앱 크랙 성ㅋ공ㅋ >
유레카! SC 은행 앱이 성공적으로 열렸다. PC를 통해 공인인증서를 추가하고 사용만 하면 될 것 같다. 이것을 하면서 근거 없는 자신감이 생겨나서 다음 목표로는 최신 버전만 실행되는 심각한 취약점을 지닌 우리은행의 버그 패치를 해볼까 생각한다. 생각만
dladbru@naver.com( A.K.A. empier)
'리버싱' 카테고리의 다른 글
x32 themida binary debugging in x64 machine (2) | 2016.02.26 |
---|---|
JADX 툴로 안드로이드 apk 파일을 디컴파일 후 분석,수정을 한뒤 리패키징하기 (1) | 2016.02.01 |
[IDA] ida sig 리버싱을 편하게 할래 - FLIRT 기능! (0) | 2016.01.20 |
[GDB] GDB Find 명령어 (6) | 2016.01.20 |
[IDA] idapython 코드 수정을 통해 원하는 함수 추가. (1) | 2016.01.20 |
댓글