본문 바로가기

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가 공을 들였다는 게 느껴진..
아드레날린 SEH 취약점 분석 1 아드레날린 POC exploit-db에 올라온 exploit poc이다. POC 내용을 보면 [BOF유발’A’*2140개 + SEH overwrite + 쉘코드]로 심플하게 구성돼있다. POC 파이썬 스크립트를 실행하면 .wvx 파일이 생성된다. 아드레날린을 열고 .wvx파일을 드래그하면 계산기가 팝업된다. 왜 그런지, 실제로 어떻게 동작하게 되는 건지 원인으 분석해보자. 2 POC 실행 테스트 아무 BP없이 무작정 poc파일을 올려보았다. 앞서 POC 스크립트를 봐서 SEH 취약점이라는 것을 알고있기도 하지만, 쉘코드가 진행되지 않고 예외처리를 묻는 과정에서 멈춘다는 점에서 다시한번 SEH 취약점이구나를 짐작할 수 있다. 우측 스택을 보면 이미 수 많은 "AAAA"들로 가득차서 BOF가 진행된 상태..
맥(MAC) 터미널 명령어 컬러 입히기 - Terminal Color 맥(MAC) 터미널 명령어 컬러 입히기 - Terminal Color sudo vim ~/.bash_profile ~/.bash_profile 파일 열기 (아마 설정 안하셨던 분이라면 해당 파일이 없음. 만들면 됨.) export CLICOLOR=1 export LSCOLORS=GxFxCxDxBxegedabagaced export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 내용 입력하고 저장 후 터미널 재시작 참조 : https://ljs93kr.tistory.com/53
우분투에서 arm 크로스컴파일 및 디버깅 우분투에서 arm 크로스컴파일 및 디버깅 주의 : arm 종류는 굉장히 다양하고 안드로이드, ios 디바이스 등 여기에 맞게 크로스컴파일 해야함. (ELF 64-bit ARM aarch64, Mach-O 64-bit ARM aarch64 등 디바이스에서 돌아가게 하려면 맞춰줘야함) 여기서는 간단하게 ubuntu에서 단순히 arm 어셈블리 연습겸 크로스컴파일하고 qemu와 gdb-multiarch를 이용하여 디버깅 하는 방법을 다룸. 크로스컴파일러 설치 arm 32bit sudo apt-get install gcc-arm-linux-gnueabi sudo apt-get install g++-arm-linux-gnueabi arm 64bit sudo apt-get install gcc-aarch64-linu..
gcc 64비트 환경에서 32비트로 컴파일 gcc 64비트 환경에서 32비트로 컴파일 멀티 패키지 설치 sudo apt-get install gcc-multilib 64비트로 컴파일하기 gcc -o 목적파일명 소스파일명 -m64 32비트로 컴파일하기 gcc -o 목적파일명 소스파일명 -m32
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 ..