본문 바로가기

arm64 어셈블리어 학습 참조 링크 https://modexp.wordpress.com/2018/10/30/arm64-assembly/ A Guide to ARM64 / AArch64 Assembly on Linux with Shellcodes and Cryptography Introduction The Cortex-A76 codenamed “Enyo” will be the first of three CPU cores from ARM designed to target the laptop market between 2018-2020. ARM already has a monopoly on handheld… modexp.wordpress.com
ios 탈옥탐지2 - 파일시스템 검사 ios 탈옥탐지2 - 파일시스템 검사 1. 탈옥 관련 파일 존재 여부 확인 샌드박스된 앱도 샌드박스 외부에 존재하는 파일의 상태정도는 조회할 수 있다. ==> 대표적인 서드파티 앱과 탈옥 시 설치되는 다양한 파일들의 존재 여부를 확인하여 탈옥 상태를 판단한다. * 로우레벨의 C함수 사용 fopen(), stat(), access() * NSFileManager 클래스 fileExistsAtPath:, changeCurrentDirectoryPath: 메소드 등 ex) stat() 함수를 이용한 파일존재여부 판단 예시 //Cydia 설치여부를 확인하여 탈옥 감지 struct stat s; int is_jailbroken = stat("/Applications/Cydia.app", &s) == 0; ex) ..
ios 탈옥탐지1 - 샌드박스 무결성 검사 (잘못 알려진 내용) ios 탈옥탐지1 - 샌드박스 무결성 검사 (sandbox check) ios 앱 경로는 크게 두가지다. 1. 앱 샌드박스 내에 설치 기본적으로 서드파티 앱들은 신뢰할 수 없다고 가정하고 다양한 기능을 제한함. 2. 루트 파티션의 애플리케이션 폴더에 설치 ( /Applications ) 기본 탑재 앱은 샌드박스 없이 루트 경로 아래인 /Applications 에 설치된다. (샌드박스의 제한을 받지 않는다.) 물론 Cydia 등에서 받은 앱들도 웬만하면 굳이 샌드박스에 설치되지 않고 /Applications에 설치한다. 샌드박스 무결성 검사 ( "X" - 잘못 알려진 내용 ) 알려진 내용 : 샌드박스에선 fork()가 금지되므로, 제대로 동작했다면 샌드박스 제한을 받지 않는 상태다! --> 샌드박스 밖에 ..
ios 디컴파일 성능 비교 Ida, Hopper, Cutter(ghidra) ios 디컴파일 성능 비교 Ida, Hopper, Cutter(ghidra) 1. 대표적인 디스어셈블러인 IDA에는 Hexray라는 디컴파일러가 있다. 2. Hopper는 IDA에 비해 훨씬 저렴하며 mac과 ios에 초점이 맞춰져 있다. 3. Radare2에서 디스어셈블러로 Cutter를 만들고 있는데, 여기서 r2dec과 ghidra로 디컴파일 옵션을 제공한다. 3가지 툴의 디컴파일 성능을 비교해보자 (ios 기준) DVIA JB 테스트 분석겸 개인적으로 주석을 달아놓았는데, 이걸 빼고 보더라도 다소 난해해 보이기는 하나, 런타임 라이브러리에 익숙하다면 어셈블리어로 보는 것보다야 훨씬 편하다. (x86부터 익숙해진 단축키도 한몫..) ios와 mac에서는 확실히 hopper가 공을 들였다는 게 느껴진..
gdb-peda 설치 gdb-peda 설치 git이 설치되어 있지 않다면 sudo apt install git 으로 깃 먼저 설치 현재 경로 아래에 깃 복사 git clone https://github.com/longld/peda.git ~/peda echo로 gdbinit에 바로 쓰는 경우가 대부분인데, 명령어만 따라했다가 어떻게 되돌리냐고 묻는 경우도 있어 직접 gedit으로 해보자. sudo gedit /etc/gdb/gdbinit 파일을 열고 그냥 gdb인 상태에서는 위 그림처럼 아무것도 없다. gdbinit 파일에 git clone으로 다운받은 source peda경로/peda.py를 적어주고 저장하면, gdb-peda로 변환된다. aslr -- Show/set ASLR setting of GDB checksec -..
기기에서 .ipa 파일 추출하는 방법 4가지 기기에서 .ipa 파일 추출하기 아이폰 앱 파일은 .ipa 인데 사실 .zip 형식임 따라서 1. /var/containers/Bundle/Application/ 경로에서 2. ls * 로 원하는 앱 찾고 3. 목표 앱 압축해서 확장자만 .ipa 로 바꿔주면 됨ㅋㅋㅋㅋ 사실 별도 툴도 필요없음; [fileza 이용] [설치] 1. apt.thebigboss.org/repofiles/cydia/debs2.0/filzafilemanager_3.3.2.deb 디바이스에 파일 다운받아서 dpkg -i deb파일로 설치해도 되지만, 2. cydia에 소스추가 : http://tigisoftware.com/cydia/ 후 fileza-64bit 바로 설치하는게 더 편함. 경로 이동 /var/containers/Bu..
ios앱분석 툴 Clutch 설치 (ios13) Clutch 설치 (ios 13기준) 0. release 바이너리 그대로 쓴다. https://github.com/KJCracks/Clutch/releases Clutch github : https://github.com/KJCracks/Clutch KJCracks/Clutch Fast iOS executable dumper. Contribute to KJCracks/Clutch development by creating an account on GitHub. github.com 1. xcodebuild로 빌드하는 방법 github 설치 그대로 따라하면 된다. xcodebuild clean build로 빌드가 성공했다면 바이너리만 모바일 기기의 /usr/bin 폴더로 옮겨주면 된다. xcodebuild ..
ios앱분석 툴 Class-dump-z 설치 (ios 13) Class-dump-z 설치 기존의 설치방식대로 했을 때 ios13 기준으로 동작하지 않음. https://github.com/DreamDevLost/classdumpios/releases deb파일 다운받아서 디바이스에 넣고 dpkg -i deb파일로 설치. ios13 기준 classdumpios 잘 돌아가는 것 확인!