Ida

Reversing Advanced

IDA lumina 서버

IDA lumina 서버는 코드를 분석하는 과정에서 심볼 정보를 임의로 제공받아 분석을 좀 더 용이하게 할 수 있게 도와주는 서버입니다. lumina 서버는 알려진 함수들의 시그니처 정보가 저장된 서버로, 사용자는 시그니처를 공유하거나 모르는 함수에 대한 정보를 공유받을 수 있습니다. 따라서 심볼을 제공받지 못했거나 처음 보는 복잡한 코드를 쉽고 원활하게 분석 할 수 있도록 도움을 줍니다. 저는 나름대로 도움 받고 있다고 생각해서 공유하고자합니다. 다음은 IDA에서 lumina 서버를 사용하는 방법입니다. https://abda.nl/lumen/ LumenAlternative Lumina server for IDA Pro - Allows users to pull function metadata from ..

Reversing Advanced

IDA "sp-analysis failed" 에러 해결 방법

함수를 디컴파일하는 과정에서 JUMPOUT()이 뜨면서 디컴파일이 정상적으로 안되는 경우가 있습니다. 이번 포스트는 이런 에러를 해결하고 함수를 정상적으로 디컴파일하는 방법을 소개합니다. asm 코드를 보면 "endp ; sp-analysis failed"라는 오류가 발생하면서 디컴파일이 수행되지않습니다. 해당 오류는 스택 포인터가 잘못 설정된 경우에 발생하는데요. 따라서 스택 포인터를 정상적인 값으로 다시 설정하면 오류를 해결할 수 있습니다. 다만, 필자는 스택 포인터를 바꾸는 방법으로 오류를 해결할 수 없었습니다. 여러가지 방법을 시도했지만, 전부 실패하고 함수를 재정의하는 방법만 성공했습니다. 따라서 함수를 재정의해서 정상적으로 디컴파일하는 방법을 공유하겠습니다. 먼저, 오류가 발생한 "endp ;..

Reversing Advanced

IDA를 이용한 바이너리 패치

IDA로 바이너리 코드를 패치하는 방법에 대해서 소개하겠습니다. 저는 target이라는 프로그램을 IDA로 패치해서 원하는 결과를 출력하는 것을 목적으로 진행할 것입니다. 실습하고 싶으신 분들은 다음 설명에서 C 코드 제공되니 직접 컴파일해서 따라해보시면 좋을 것 같습니다. ○ target.c#include #include int compare(const void *a, const void *b) { int num1 = *(int *)a; int num2 = *(int *)b; if (num1 num2) return 1; return 0;}void solution(int arr[], int arr_size, int num[], int num_size) { int N = arr..

Mobile

[OWASP-MSTG] UnCrackable-Level3

문제분석UnCrackable-Level2에 이어 Level3를 풀어보자. UnCrackable-Level3.apk를 다운받고 [Android Studio Emulator]를 이용해서 App을 분석했다. 탐지 우회frida로 앱을 실행하면 프로세스가 강제종료되는 것을 확인할 수 있다. 프로세스가 종료되는 이유를 파악하기위해 apk를 디컴파일하고 코드를 확인했다. MainActivity의 oncreate()에서 처음에 verifyLibs()를 실행하는 것을 파악할 수 있었고 이 함수 내부에서 프로세스 종료와 관련된 로직이 있을 것이라고 생각했다.  ○ verifyLibs()private void verifyLibs() { this.crc = new HashMap(); this.crc..

keyme
'Ida' 태그의 글 목록