본문 바로가기

40./42. iOS

(25)
iOS Memory 문자열 변조(String Edit in iOS Memory) 메모리 변조하는 방법에 대해서 일부 개발자만 동작원리와 개발하는 방법을 알고있다. 오늘 메모리 변조에 대한 기본 지식, 메모리 함수, 변조 방법까지 정리 할 예정이다. Part 1. 기본 개념 1. Process 프로세스 우리는 HelloWorld.c 컴파일을 하면 HelloWorld.exe을 실행 파일을 생성 수 있다. iOS/OSX는 실행 가능한 파일들이 모두 실행에 필요한 데이터와 명령어가 포함된 March-O 포맷으로 되어있다. 운영체제에서 해당 실행파일을 실행하면 우리는 그걸 프로세스라고 불른다. 사실 실행파일과 프로세스는 데이터와 명령어의 집합이 다른 상태의 같은 오브젝트(객체)이다. 실행 파일은 정적, 프로세스는 동적이라고 볼 수있다. 실행 파일은 하드 디스크에 저장되어있고 프로세스는 메모리..
[DVIA] 11. Sensitive Information in memory [DVIA] 11. Sensitive Information in memory메모리에 중요 정보 노출 111. Sensitive Information in memory Q1. A couple of properties with the name "Password" & "Username"몇몇 속성의 이름은 "Password" 와 "Username" Q2. An instance variable named "passwd" 인스턴트 변수 명은 passwd이다. # pe -ef | grep Damn # gdb -p 1200 (gdb) b malloc(gdb) c(gdb) finish - > 사용하지 말 것!! (gdb) i r r0(gdb) i mach-region 0x00000000 0xFFFFFFFF(gdb) du..
iOS GNU Debugger 설치 iOS GNU Debugger 설치설치 환경 : iOS 8.1.2 (iPhone 5)추가 소스 : http://cydia.radare.org/
iRET, Snoop-it 동시 설치 iRET, Snoop-it 동시 설치iRET과 Snoop-it을 설치 시 "trying to overwrite '/Applications/._.DS_Store'" 에러 메시지 출력 #dpkg-deb -x iRET.deb iRET_tmp/ #패키지 내용 추출#dpkg-deb -e iRET.deb iRET_tmp/DEBIAN/ #컨트롤 파일 추출#find iRET_tmp/ -name "*DS_Store" -type f -delete #모든 DS_Store 파일 삭제#vi iRET_tmp/DEBIAN/control #버전 태그 더블쿼터(")#dpkg-deb -b iRET_tmp/ updated_iRET.deb # 새로운 deb 파일 생성 iRET과 Snoop-it 두개의 패키지는 모두 ._.DS_Store을 ..
iNalyzer5 iNalyzer5 iNalyzer - AppSec : https://appsec-labs.com/inalyzer/ Doxygen : http://www.stack.nl/~dimitri/doxygen/download.html Graphviz : http://www.graphviz.org/Download_windows.php # cd /Application/iNalyzer5.app/# ./iNalyzer5
[DVIA] 10. Binary Patching [DVIA] 10. Binary Patching 모바일 애플리케이션의 실행 파일을 패치함으로써 애플리케이션의 기능을 영구적으로 변경 가능하다. 101. Login Method 1DVIA 모바일 애플리케이션에서 바이너리 패치 문제 중 첫번째 "Login Method 1"는 계정과 비밀번호로 인증하는 기능이다. 계정과 비밀번호가 틀려도 로그인 가능하면 성공이다. 계정과 비밀번호에 aa로 인증 시도하였으나, Oops 경고창을 확인했다. # 진행 단계 #1. 테스트 실행 (로그인 불가능)2. Snoop-it을 이용하여 동적 Object-C Class/Object-C Method 호출 확인3. IDA(Disassembler)를 이용하여 Object-C Method 동작 확인4. Hex Editor를 이용하여 바이..
[DVIA] 03. Runtime Manipulation [DVIA] 03. Runtime Manipulation Runtime Manipulation은 모바일 애플리케이션이 실행 중에 GDB, Cycript 등을 이용하여 동적으로 기능을 변경하는 방법이다. GDB나 Cycript는 이전 [DVIA] 02. Jailbreak Detection에서 사용하였으므로 이번에는 Snoop-it과 Theos/MobileSubstrate(Tweak)을 이용할 것이다. 031. Login Method 1 Theos는 Xcode를 사용하지 않고 iDevice의 소프트웨어를 관리, 개발 및 배포 가능한 크로스 플랫폼 개발 도구이다. ThoOS는 탈옥한 iOS에서 Tweak을 개발하기 위한 중요한 도구이다. DVIA 모바일 애플리케이션에서 Login Method 1을 클릭하면 "..
[DVIA] 02. Jailbreak Detection [DVIA] 02. Jailbreak DetectioniOS 탈옥(iOS jailbreaking)은 iOS의 제한을 풀어 사용자의 루트에 접근할 수 있게 함으로써 서명되지 않은 코드를 실행할 수 있게 하는 과정을 말한다. 보안 상으 문제로 탈옥을 탐지하도록 되어있으며 DVIA를 이용하여 탈옥 탐지 우회를 시도 할 것이다.※ 탈옥을 하는 이유 중 하나는 앱플과 앱 스토어가 막아 놓은 컨텐츠에 접근성 때문에 탈옥합니다. 021. Jailbreak Test 1 (GDB)DVIA 모바일 앱에서 Jailbreak Detection을 메뉴를 선택한 후 "Jailbreak Test 1"을 확인하면 탈옥 탐지를 확인하는 "Device is Jailbreken" 경고 메시지를 확인 할 수 있다. # 진행단계 #1. 테스..