Ida

Reversing Advanced

IDA lumina 서버

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

Reversing Advanced

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

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

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' 태그의 글 목록