최첨단
전투로 단련된 iOS 리버스 엔지니어로서 혼란을 겪지 않았다면 경쟁 제품의 핵심 비즈니스에 침투하지 않았다는 의미입니다. 큰 공장의 핵심 사업은 어느 정도 보호를 받으며, 이는 스스로를 보호하는 방법입니다. 오늘 우리는 학습과 사용만을 위한 동맹을 분석합니다.
난처
일반적인 난독화 방법: bcf(거짓 블록), fla(흐름 제어 확장), sub(명령 확장), Split(기본 블록 분할), 이것은 Mr. Zhang ollvm의 기능입니다. 혼자 빅 가이. 그러나 IDA에서 분석한 버그를 사용하여 일부 보호 기능을 수행하는 제조업체도 있습니다. 예를 들어 의도적으로 불균형 스택을 생성하거나 F5를 할 수 없거나 레지스터를 사용하여 함수에서 BR X12로 점프하거나 가비지 명령어를 삽입하여 IDA가 구문 분석에 실패하는 등
만난 적이 있습니까?
그를 잡아
- 1.MonkeyDev 중단점
런타임 시 주소인 x12 레지스터의 값을 알 수 있습니다.
- 2. frida-stalker 사용
저는 주로 frida-stalker를 사용하여 명령어를 수집하고, 작업 중에 실제 실행 명령어를 기록하고, 실제 실행 명령어로 IDAPython으로 IDA에 많은 복구 스크립트를 작성할 수 있습니다.
스크립트 작성, 지침 수집 및 지침 json 파일 생성
3. 2를 통해 명령어 집합을 수집하고 IDA에서 복구 스크립트를 실행합니다.
exec(open('/Users/xxx/Desktop/Uxx/ida_fix.py').read())
复制代码
결과 보여줘
여기까지 코드 복원이 종료됩니다.
2. 요약
- 1. 목적 함수의 시작점을 찾고 실행 단계 수를 계산합니다.
- 2. 목표 함수에 의해 실행된 명령어 세트를 수집하는 스토커 스크립트를 작성하십시오.
- 3. IDAPython 스크립트를 작성하고 IDA에서 실행하여 대상 함수를 수정합니다.
3. 액세서리
요청하려면 작성자에게 문의하세요.