iphone 실행 파일 수정 예시
분류없음 2010/05/06 13:39 |만약 어떤 필요에 의해 iphone 프로그램의 실행 파일을 변경할 필요가 있으면 다음과 같이 합니다.
1. 변경할 프로그램의 실행 파일 찾기
2. 실행 파일 decrypt
3. 실행 파일의 cryptid 를 0 으로 변경
4. 실행 파일 내 원하는 부분 수정
5. 본래 실행 파일 교체
한 단계씩 좀 더 설명드리면,
1. 변경할 프로그램의 실행 파일 찾기
많은 방법이 있습니다만 SBSettings 을 사용하는 경우,
이놈을 호출한 후에 More > App Folders > 찾을 프로그램 선택
이렇게 하면 /var/mobile/Applications/어쩌구저쩌구/실행파일명.app 이런 형태의 경로가 팝업으로 뜹니다.
해당 경로로 가보면 '실행파일명'에 해당하는 실행파일 있습니다.
PC로 복사하서 이후 단계로...
2. 실행 파일 decrypt
decrypt 에 필요한 메모리 덤프 파일은 어떻게든 이미 가지고 있습니다;;
이 파일을 'dump.bin' 이라 치고 본래 실행 파일은 'COLAP' 이라고 칩시다
세계적으로 많이 이용되는 평범한 에디터 ultraedit 로 두개의 파일을 엽니다.

열어보면 이렇습니다.
우선 dump.bin 파일 창을 맨 끝까지 내려고 'a' 영역의 가장 마지막 값을 기록해 둡니다.
예를 들어 가장 마지막 값이 001abcd0h 라고 치면
dump.bin 파일 내용은 'a' 영역의 00000000h ~ 001abcd0h 까지 보이는 겁니다.
dump.bin 파일 내용을 전체 복사 합니다. (단축키는 Ctrl+a 하고 Ctrl+c)
이제 COLAP로 가서 'a' 영역의 00001000h 첫 문자로 갑니다. 이 때 'c' 값이 1000H 여야 합니다.
이 위치부터 dump.bin의 내용을 덮어 씌워야 하는데 계산해 보면 이렇죠
0 부터 1abcd0 까지 내용이니 1000 부터는 1accd0 입니다.
(윈도우 계산기를 공학용, hex로 설정하고 덧셈하면 됩니다.)
COLAP 파일에서 00001000h ~ 001accd0h 줄 끝까지를 선택 후 복사한 dump.bin 내용을 붙입니다.
저장하고 다음 단계로...
* 참고로 파일 내용은 덮어쓰기(수정) 되야하고 삽입이 되면 안됩니다.
dump.bin 의 내용이 BB 이고 COLAP 내용이 AAAA 라면
decrypt 된 COLAP 내용은 ABBA 처럼 되야지 ABBAAA 가 되면 안됩니다.
* 즉 본래의 COLAP 파일과 덮어쓰기 끝낸 COLAP 파일은 크기가 같습니다.
3. 실행 파일의 cryptid 를 0 으로 변경
이제 본래의 실행파일이 decrypt 되었으니 정상적으로 실행되게 하려면 cryptid를 0으로 변경해야 합니다.

보시는 대로 COLAP 파일의 00000800h 근처에 'd' 와 같이 01 이라는 값이 보입니다.
프로그램 마다 각기 위치가 조금씩 다르므로 오른쪽의 저런 정도의 위치감으로 찾습니다.
찾았다면 01을 00으로 바꿉니다.
저장하고 본래 파일과 교체하여 iphone에서 실행해 봅니다. (퍼미션 755인지 확인)
정상적으로 실행되지 않으면 뭔가 위의 과정에서 실수가 있었던 것이니 처음부터 다시 해봅니다.
실행이 잘 된다면 다음 단계로...
* 참고로 컴퓨터에 좀 더 익숙한 분들을 위해 추가 설명드리면,
cryptid의 위치는 dump.bin 파일 크기(cryptsize)로 정확히 찾을 수 있습니다.
예시에서 dump.bin 파일 크기는 0x1abcd0h + 0x10h 이므로 0x1abce0h 겠지요.
iphone ARM 프로세서는 byte order 가 little-endian을 따르므로
이 경우 e0 bc 1a 00 01 로 검색하면 마지막 01이 cryptid 입니다.
4. 실행 파일 내 원하는 부분 수정
위 과정을 잘 이해하셨다면 쉽습니다.
만약 0x5001 위치의 D1을 E0로 바꾸어야 한다면
'a' 영역에서 00005000h 의 두번째가 D1 일테고 그것을 E0로 수정 후 저장하면 됩니다.
이때 위치가 맞다면 'c' 영역에 5001H라고 정확히 나올 것입니다.
* 중요한 점은 디스 어셈 코드상으로 0x5001 을 바꾸어야 하면
iphone의 경우 물리적인 파일 상으로는 0x1000 을 뺀 0x4001을 바꾸어야 합니다.
5. 본래 실행 파일 교체
* 반드시 교체한 파일의 퍼미션은 755 여야 합니다.
여기까지 바이너리 수정에 대해 설명드렸고요,
컴퓨터 시스템 구조를 좀 알아야 하는 부분(어디를 어떻게 수정할 것인가)은
관심을 갖고 시간을 투자하여 공부할 내용이므로 필요하다면 천천히 해나가시기 바랍니다.
어쨌든 누군가가 필요한 정보를 적어 놓았다면 이 방법대로 따라하면 되겠습니다.
이상의 작업을 좀 더 편리하게 할 수 있는 다양한 도구들이 있습니다만,
일부러 평범한 에디터를 가지고 번거롭게 수정하는 내용으로 설명드린 이유는;;
IT 보안에 무지한 일부 사람들이
본인들이 알지 못하는 도구를 쓰면서 (본인 생각에)뭔가 나쁘게 보이는 일을 한다치면
곧바로 범죄자 취급하면서 해킹 도구를 유포하네 해킹 방법을 퍼트리네 어쩌네 하는 일이 있는지라
그런 해괴한 일이 생기는 것을 대비하기 위함입니다.
이 게시물 어디에도 불법적인 내용이 없고 해킹 도구의 소개나 해킹 방법의 설명를 담고 있지 않습니다.
탈옥폰은 불리는 어감과는 달리 OS의 기능을 100% 이용하는 아주 정상적인 iphone입니다.
가끔 일부 어플의 이런 부분을 해결하지 못하여 빛의 감옥으로 돌아가는 안타까운 사례가 있어 적어보았습니다.
이 글은 스프링노트에서 작성되었습니다.
사용 가능합니다.
저작자 표시 : 필수
영리적 사용 : 허용함
내용변경 : 허용안함
- 태그
-
- iphone ,
- iphone 어플 수정 ,
- Iphone 바이너리 수정 ,
- Iphone decrypt


























또는 파일질라에서 설정 가능합니다. (05.05 22:30)
꼭 확인할 필요가 있습니다
755 해결후 모든게 해결되었습니다. 감사합니다.
참고로 터미널 사용시 'CHMOD 755 Filename' 변경가능합니다 (05.05 22:47)
ifile에서도 excutable로 다 바꿔서도 해봤고...
파일사이즈도 동일하고...
그래도 안되네요...
혹 버젼이 틀린가요?
전 미국 아이튠에서 받았는데...
쩝.. 그래도 cryptid 만 0으로 바꾸고 dump.bin은 안바꾸고도 해봤는데도 안되고...
거의 몇시간동안 가능한 모든 조합들을 해봣는데도 안되네요... (05.05 23:32)
연구중인 파일에 대해 의견을 나누고 싶으시면
적당한 곳에 올리시고 링크를 비밀글로 달아주세요;; (05.05 23:44)
연구하시는 어플의 버전 및 업데이트를 확인해 보세요;;
원본 자체가 다른 듯 합니다.
제가 알고 있는 원본과 내용도 다르고 크기도 다릅니다. (05.06 00:39)
http://www.cyworld.com/colap/3740839 (05.06 00:46)
http://www.cyworld.com/colap/3740839 (05.06 12:41)