(솔직히 편하긴해요)
Command line에서 제어할 일이 있어서 찾아본 도구중에 괜찮은게 있어 정리해둡니다.
MH?
https://github.com/sskaje/mh 로 유명한 도구는 아닙니다. (그냥 저처럼 개인이 만들어두고 쓰시는 것 같아요)기본적인 메모리 뷰/변조, Convering 등을 지원하고 Js 코드를 지원한다고 합니다.(잘 쓰면 프리다라 붙임성이 있을지도!?)
# Clone git clone https://github.com/sskaje/mh.git cd mh # Submodule 설치 git submodule update --init --recursive # SDK, duktape 설치 bash tools/download_sdks.sh bash tools/duktape_prepare.sh
빌드 환경 구성은 위에 정도면 충분하고, OS 아키텍쳐 별로 빌드하셔서 사용하시면 됩니다.
# Build for macOS bash build/build-osx.sh # Build for ARMv7 iDevices bash build/build-ios-armv7.sh # Build for ARMv7s iDevices bash build/build-ios-armv7s.sh # Build for ARM64 iDevices, iOS 10.2 bash build/build-ios-armv64.sh # Build for deb package for all iOS device bash build/build-ios-deb.sh
빌드하게 되면 아래 경로(./build)에 빌드된 내용이 담기는 디렉토리가 생기고 이 안에서 바이너리 파일을 확인할 수 있습니다.
> ls build/ build-ios-arm64.sh build-ios-armv7s.sh build-mac.sh ios-armv7 layout build-ios-armv7.sh build-ios-deb.sh ios-arm64 ios-armv7s > ls build/ios-arm64 CMakeCache.txt Makefile mh_cli tests CMakeFiles cmake_install.cmake mh_script
macos의 경우 바로 사용하시면 되고 다른 iOS 기기의 경우 scp로 넣어주고 사용하시면 될듯합니다.
#> scp build/ios-arm64/mh_* root@192.168.0.13:///bin/기본적인 명령어 리스트는 help 옵션 주면 확인이 가능하고 별도 옵션이 없으면 대화형 프롬프트로 넘어갑니다. (여기서도 help 되요)
#> mh_cli MH[nil] >
How to find? How to Edit?
우선은 메모리 변조를 할 앱을 찾아야합니다. "process-list" 명령으로 프로세스 확인해주시고, pid로 해당 프로세스를 열어줍니다.MH[nil] > process-list PID UID bits Name 0 0 64bit kernel_task 1 0 64bit launchd 188 0 64bit amfid 318 0 64bit jailbreakd MH[nil] > open 1717 Current PID=1717 MH[1717] >
아래는 뭐 help 보시면 금방 따라할 내용입니다.. 그냥 search-string 찾고자 하는 데이터를 찾고, result로 그 결과를 볼 수 있습니다.
MH[1717] > search-string hhhhhh Found 9 result(s). MH[1717] > result update search @address:0000000108abaaf1 [5] 0x000000016f030000-0x000000016f0b8000 size=0x100000010 offset=0000000000000000, rw-/rwx, STACK 000000016f0b1ee8 68 68 68 68 68 68 68 00 00 00 00 00 00 00 00 00 hhhhhhh......... update search @address:000000016f0b1ee9 [6] 0x000000016f030000-0x000000016f0b8000 size=0x100000010 offset=0000000000000000, rw-/rwx, STACK 000000016f0b1ee9 68 68 68 68 68 68 00 00 00 00 00 00 00 00 00 3f hhhhhh.........?
메모리 내용이랑 주소값을 같이 주는데, memory-write 명령으로 메모리 내 데이터 수정이 가능합니다. 다른 메모리 변조와 동일하게 오버되는 길이는 프로그램 동작에 영향을 줄 수 있으니 크기 잘 계산하셔서 넣어주시면서 테스트하시는게 좋습니다.
(지지난주인가.. 장난치다가 아이패드 리붓됬고, 결국 재탈옥의 단계를 접어섰었네요..)
MH[1717] > memory-write 000000016f0b1ee8 "HAHWUL" 0000000000000000 48 41 48 57 55 4c HAHWUL
Js 지원 관련해선 테스트해본건 없는데, 아마 자바스크립트로 mh 기능 자체를 불러와서 쓰는걸 의미하는 것 같습니다. (그냥 이 기능을 api 부르듯이 쓸 수 있다? 느낌, Js로 로직을 만들 수 있다 정도?)
혹여나 Js 쓰게되면 댓글로 남겨놓겠습니다 :)
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment