iOS Reverse Engineering 작업 단계

하편: iOS Reverse Engineering의 개념 정보

iOS 애플리케이션을 역분석하려면


iOS 애플리케이션을 역으로 분석하려면 어떻게 됩니까?어떻게 설치합니까?이 Write-up의 본뜻은 iOS Reverse Engineering의 문을 열어 보여주자는 것이다.
일반적으로 iOS Reverse Engineering은 애플리케이션 포괄적 분석과 코드 부분적 분석 두 단계로 나뉜다.응용을 전면적으로 분석하는 상황에서 응용 프로그램은 위의 시각에서 응용 프로그램의 행위, 파일의 구조, 신경 쓰이는 부분을 먼저 찾아내 코드 국부 분석의 단계에 들어간다.그리고 마음에 드는 부분의 코드를 어셈블리 언어로 복원하여 CPU 구조를 분석하여 목적을 달성한다.
어플리케이션 전체 분석
응용 프로그램을 전면적으로 분석하는 단계에서 먼저 목표 응용 프로그램의 기초 기능을 파악한 다음에 기능의 조합을 탐색한다.아무렇지도 않게 다양한 조작을 시도해 보고 응용 프로그램의 반응을 관찰해 보자.또한 주의해야 할 부분, 예를 들어 어떤 옵션으로 알림을 주고, 어떤 버튼을 누르면 소리가 나고, 어떤 정보를 쓰면 어디서 어떤 결과를 얻을 수 있는지 주의해 주십시오.응용 프로그램의 파일 시스템, 화면에 있는 사진, 로고, 응용 프로그램의 전송Config의 위치, 데이터베이스 파일의 내용, 암호화 상황을 이 단계에서 전면적으로 분석한다.
중국의'트위터'- 시나닷컴 웨이보의 경우 Docoment의 목록을 관찰할 때 다음과 같은 데이터베이스를 발견했다.
-rw-r--r-- 1 mobile mobile 210944 Oct 26 11:34
db_46100_1001482703473.dat
-rw-r--r-- 1 mobile mobile 106496 Nov 16 15:31
db_46500_1001607406324.dat
-rw-r--r-- 1 mobile mobile 630784 Nov 28 00:43
db_46500_3414827754.dat
-rw-r--r-- 1 mobile mobile 6078464 Dec 6 12:09
db_46600_1172536511.dat
……
SQLite로 데이터베이스를 열면 다음과 같이 따라가는 사람의 개인정보를 발견할 수 있습니다.

이러한 정보는 데이터베이스의 이름, 사용자의 ID, 사용자 정보의 URL으로 가득 차 있다.etc...이것들은 모두 역분석의 입구로 잠입할 수 있다.이런 정보를 찾아 정리하고 신경 쓰이는 것을 기록하는 것이 iOS Reverse Engineering의 첫걸음이다.
코드 부분 분석
목표가 정해지면 코드별로 분석을 시작합니다.
iOS Reverse Engineering을 통해 앱의 디자인 방법, 내부 ago 리듬, 세분화 실현 등을 추정할 수 있다.이것은 매우 복잡한 과정으로 응용 프로그램을 각 부품에 따라 깨뜨리고 구축하는 것이다.iOS Reverse Engineering의 능력을 높이려면 소프트웨어 개발, 하드웨어 아키텍처, iOS 시스템을 포괄적으로 파악해야 한다.바로 이런 파악 능력이야말로 어디까지 갈 수 있는지의 관건이다.한 마디로 다 설명할 수 없으니 매일매일 쌓아 익혀야 한다.여기서는 호기심과 끈기가 말을 한다.
이 글의 시리즈는 초보자들에게 iOS Reverse Engineering의 줄거리와 도구를 소개하는 것일 뿐, 기술도 나날이 새로워지는 것으로, 방법을 강구해 여러분과 함께 공부하는 것이 평생 학습의 장점이다.

iOS 어플리케이션을 위한 역분석 도구


단지 이론만으로는 부족하기 때문에 앞으로 각양각색의 도구를 사용하여 이론을 실현할 것이다.Reverse Engineering에만 있는 도구로 일반적인 소프트웨어 개발 중인 IDE에 비해 똑똑하지 않고 스스로 조정해야 하는 경우도 있다.도구를 사용하는 과정에서 점점 익숙해지는 것도 당연한 일이며 이런 상황에서 이 방법으로 해결할 수 있을 것으로 추정된다.Reverse Engineering의 도구는 거의 네 가지로 나뉘는데 그것이 바로 모니터 클래스, 역조립 클래스, 디버깅 클래스, Tweak 개발 클래스이다.
모니터 클래스
탐지, 모니터, 기록 등의 기능을 갖춘 도구는 미니형으로 분류된다.이러한 도구는 UI의 변화, Network Activity, 파일의 읽기와 쓰기 등 대상 애플리케이션의 내부와 외부의 변화를 감지하여 주인에게 알립니다.욕망에 이용되는 도구로는 리벨, 스누프-it, 인트로스피, 앱몬 등이 있다.
욕망에 의해 사용되고 있는 유명한 응용 프로그램 UI 탐지 소프트웨어: Reveal, 이 소프트웨어를 사용하면 마음에 드는 UI를 입구로 삼아 코드에 잠입할 수 있다.

역방향 분류
코드에 잠입한 후 역조립 도구로 코드를 정리하는 절차.반조립 도구는 2진법을 입력 처리로 하고 조합 코드를 레이아웃합니다.역조립류는 고도의 전문가인 과학 분야에서 자주 사용하는 도구로 2개, IDA, 호퍼가 있다.
오래된 브랜드 기업 IDA는 윈도, 리눅스, MacOS 세트 장비와 각종 CPU 구조에 대응하는 분야에서 가장 자주 사용하는 역조립 도구이다.

호퍼는 최근 데뷔한 후배로 맥OS·iOS를 전공했다.

역조립 2진법 이후 가장 재미있고 도전적인 부분은 구성 요소 코드의 분석이다.자세한 내용은 추후 차차 말씀드리겠습니다.
속도조절기류
iOS 앱 개발자들은 iOS 앱 개발 과정에서 자주 사용하는 Xcode의 LDB는 대부분 코드의 중간에 Breakpoint를 설정하여 프로그램을 일시적으로 중단시켜 실시간 상태를 보여주는 데 익숙해졌을 것이다.LLDB는 Reverse Engineering에도 사용됩니다.

Tweak 개발 클래스
UI 잠입 코드를 통해 역조립 도구와 디버거로 바이너리를 분석한 후 Tweak 개발 도구: Theos에 Tweak의 성과를 추가합니다.iOS 애플리케이션에 있어 X코드는 가장 자주 사용하는 공식 IDE이지만, Jailbreak iOS로 바뀌면 공식 도구가 존재하지 않는다.Xcode 기반 iOSOpenDev, CLI 기반 Theos도 있습니다.자신에게는 테우스가 더 우수하다.Theos에 대해 알기 전까지는 앱스토어에 국한돼 왔다고 생각했지만, Theos를 장악한 뒤 앱스토어를 뚫고 전면적으로 iOS 시스템으로 급진했다.

SUMMARY


이 기사는 iOS Reverse Engineering의 개념을 설명하고 대략적인 프로세스를 설명합니다.상세한 조작 절차와 사례 학습을 지금부터 시작하겠습니다.
다음 장: iOS 파일 시스템 소개

좋은 웹페이지 즐겨찾기