해킹 40

MFC 프레임워크 기반 앱 시작지점

#MFC #리버싱 #Reversing MFC 프레임 워크 기반 앱의 경우, MFC 에서 선언 해놓은 클래스들을 상속 받아서 사용자 클래스를 정의하는 식의 개발이 이루어진다. 그만큼 MFC 프레임 워크에서 기본적으로 제공해주는 기반이 상당한데, 최근 MFC 관련 앱을 리버싱해본 결과 리버싱 과정에서도 그러한 기반 클래스들이 어떻게 동작하고, Dialog 까지 생성하는지 등등 알아야할 것이 많아보였다. 흔히 금방 찾을 수 있는 main 함수의 경우에도 함수 vtable 어딘가에 심볼이 깨진채로 들어가있어서 정적분석으로는 금방 가늠하기 어렵고, 동적분석으로 해당 함수를 찾아야한다고 판단하였다. 수 많은 문서를 탐색하면서 main 포인트를 찾는 과정을 간략히 정리해보겠다. int start() { _securi..

Win-AFL 퍼저 빌드과정

#퍼징 #AFL-FUZZ #Win-AFL 리눅스에서는 AFL-FUZZ 를 사용했듯이 윈도우 환경에서도 Win-AFL 을 통해 퍼징을 진행할 수 있다. GUI 바이너리에도 가능하고, 커스텀해서 퍼징도 가능한듯..? 하다. 무엇보다도 단순 AFL-FUZZ 보다 확장된 기능이 있는데, Syzygy 를 통한 정적 명령어 삽입, DynamoRIO 를 이용한 동적분석 시 명령어 삽입, 하드웨어 트레이싱 등등... 이 있다고 한다. 일단은 빌드 부터 해보기로! 매우 쉽다. 1. CMAKE 설치 Win-AFL 을 빌드하는데에는 CMAKE 가 필요하다. DynamoRIO 기능을 cmake 를 통해 넣어주는 부분에서 필요한 것 같다. https://cmake.org/download/ 위 링크에 가서 자기한테 맞는 걸로 다..

[iOS] iOS 어플 IDA로 원격 디버깅 하기

#iOS #ipa #IDA #어플 IDA 로 iOS ipa 파일 원격디버깅 붙는 법을 서술하겠습니다. 1. 준비물 탈옥 된 아이폰 (작성자 기준 iPhone 7, iOS 14.4.2) USB 8핀 케이블 (컴퓨터랑 연결할 용도) Decrypt 된 ipa 어플 파일 (Decrypt 과정은 생략. EASY 함) 2. 순서 2-1. PC 와 iPhone usb 로 연결 2-2. iPhone Wi-Fi 연결 이 부분에서 ip 알아내어 ssh 연결을 해야한다. 2-3. iPhone ssh 연결 후, debugserver 로 포트오픈 우선 cydia 에서 debugserver-10 을 설치 한다. 그리고 ssh 로 iPhone 에 접속해서 위와 같이 23946 포트를 열어 통신 대기를 한다. 물론 이 때도 USB ..

스마트컨트랙트 분석환경 구성하기

최근에 Hayyim CTF 하면서 EVMatrix 라고 스마트컨트랙트를 소재로한 문제를 접할 기회가 있었는데, 블록체인&코인&스마트컨트랙트에 문외한이었던 나는 그 문제를 포기할 수 밖에 없었다 ;; WriteUp:하임이 흑화하면? 초코하임 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 해당 Write Up 을 보면서 내가 몰랐던 지식들을 가지고 분석을 할 수 있었구나 하는 생각이 들어서 한 번 스마트 컨트랙트 분석환경을 직접 구축해보기로 하였다. 스마트 컨트랙트에 대해서는 글이 널려있기에 설명을 짧게 하자면, '이더리움 거래' 를 비롯한 여러 계약(무역계약, 금융계약, 부동산 계약 등등) 에 있어서 해당 계약이 체결 되는 시점에 이행할 행동을 정의한 script 를 스마트 컨트랙트라고 이해하면 될 듯하다. 이를 통해 dApp 이나 ..

안드로이드 디컴파일러에서 리소스 찾기

#안드로이드 #리소스 #리버싱 대단한 지식은 아닙니다. 가끔 디컴파일러로 보면 위처럼 string 을 가져오는데 뭔지 궁금할 때가 있다. 함수 원형에 따르면 string 인자가 아닌 int 값이 올 경우 리소스 id 를 가리킨다고 하는데 어디에 있는지 찾아보면 해당 넘버가 있는 곳이 있다. C와 R 사이에 이상한 넘버가 적혀있는 클래스 파일인데, 해당 클래스는 어플에서 쓰는 모든 리소스에 대한 id 가 적혀있는 파일이다. 보통 안드로이드 어플 코딩을 할 때, R 이라는 객체를 선언 후, 참조를 하면서 리소스를 다룬다고 한다. 그래서 이처럼 디컴파일러에서 R 객체를 참조하는 구문을 잘 보여줄 때도 있지만, 맨 처음 사진 처럼 리소스 id 만 딱 보여주고 알아맞혀봐라는 식의 dex 난독화가 걸려있는 경우에는..

중국발 문서형 이력서 악성코드 - 2. 유니버셜 쉘코드편 (Universial Shellcode)

#악성코드분석 #중국 #문서형 악성코드 MD5 HASH Dropper: 59e08d42ce495f290c4dfd7be9614f786cdfed3ebdd7d6e68accbb630c051083 Core Malware: fa1f9f5deac24c735baa77eb5b76b9057b3fea6c2bc7f2bf7f16420a8b48f00c 주요 사용기법 Document Template Injection, Universial Shellcode Drop URL http://xiaodi8.com/1.dotm?raw=true (현재폐쇄) 지난 글 에 이어서 쓴다. 중국발 문서형 이력서 악성코드 - 1. 드로퍼&매크로편 #악성코드분석 #중국 #문서형 악성코드 MD5 HASH Dropper : 59e08d42ce495f290c..

중국발 문서형 이력서 악성코드 - 1. 드로퍼&매크로편

#악성코드분석 #중국 #문서형 악성코드 MD5 HASH Dropper : 59e08d42ce495f290c4dfd7be9614f786cdfed3ebdd7d6e68accbb630c051083 Core Malware : fa1f9f5deac24c735baa77eb5b76b9057b3fea6c2bc7f2bf7f16420a8b48f00c 주요 사용기법 Document Template Injection, Universial Shellcode Drop URL http://xiaodi8.com/1.dotm?raw=true (현재폐쇄) 문서형 악성코드이다. 이전에 설명한 Template Injection 이 아주 잘 이용된 표본이라고 할 수 있다. 악성 매크로가 있는 dotm 템플릿 매크로 파일을 http://xiao..

[잡지식] 안드로이드 패키지 이름에서 com 접두사의 의미

기존 자바의 패키지와 안드로이드의 자바 패키지를 구분하기 위한 패키지 이름 구분자라고 한다. 안드로이드 패키지에는 com.(기업이름).(플랫폼).~~~ 을 붙여서 패키지 이름을 구성하면 된다고 한다. 궁금해서 찾아보았음. https://stackoverflow.com/questions/26194527/com-prefix-meaning-on-android-apps com. prefix meaning on Android apps What does mean the com. prefix in some Android processes? E.g.: com.whatsapp, com.google.android.gapps, com.android.mms, com.antivirus, etc. stackoverflow.com

반응형