Home IPA Data Decryption
Post
Cancel

IPA Data Decryption

애플스토어에서 앱을 다운받으면 ida로 분석을 해보면 암호화 되어서 분석이 불가능합니다.
복호화하는 도구들도 많지만 수동으로 복호화 하는 방법을 알아봅시다.


Let’s go

Step 1 ipa to local PC

AppStore에서 다운받은 ipa 파일을 로컬 PC로 옮깁니다. ida에서 ipa파일을 열어보면 암호화 메시지 확인이 가능합니다.

암호화 메시지

Step 2 Check encrypt size

iOS 안에서 접속 후 otool -arch all -Vl [앱 이름] | grep ep -A5 LC_ENCRYP 명령을 실행합니다.
암호화 사이즈 크기 확인이 가능합니다.

암호화 사이즈

Step 3 Get Hex encrypt size

  • 0x43000 에서 0x1000 만큼 암호화가 되어 있음
  • 0x43000 ~ 0x44000 까지 암호화가 되어 있음

hex차이

Step 4 Get the decrypted value from the memory

frida 후킹을 통해 앱 시작 주소를 가져옵니다.
ex) -> 0x104fe0000

1
2
var module_list = Process.enumerateModules();
send(module_list);

Step 5 Add

  • 시작주소 + 암호화 사이즈 + 암호화 크기
  • ex) 0x104fe0000+0x43000 ~ 0x104fe0000+0x43000+0x1000 -> 복호화 메모리 데이터

Step 6 Memory Dump

1
fridump3.py -u -r [pid]

Step 7 File overwrite

HxD 도구를 이용하여 암호화 부분 만큼 메모리 덤프에서 추출한 값으로 덮어씁니다.

Step 8 ida check LC ENCRYPTION

  • IDA에서 view -> Segment -> Header 클릭
  • LC ENCRYPTION 에서 1 -> 0으로 변경
  • edit -> patch program -> Apply Patches to input file 저장

후기

수동으로 ipa 데이터를 복호화하는 방법을 알아보았습니다. crackerXI 같은 자동화 도구가 있지만 도구가 안될경우 수동으로도 할 수 있습니다.
Happy Hacking!