목록리버싱 (40)
6kittylog

내부 스터디 준비하면서 풀어야 하는 문제 이걸 풀기 위해서는 먼저 안티 디버깅을 알아야 한다. 여기서 쓰인 안티 디버깅이 뭔지부터 파악해보자 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 디버거에서 실행해봤더니 아니나 다를까 이렇게 문자열이 출력된다. ida로 열었더니 이부분이 딱 보인다. 저 함수는 대표적인 안티 디버깅 방법 중 하나이다. 구글링에서 찾은 해당 함수 그대로 인용하자면.. https://iforint.tistory.com/52가장 간단한 디버거 탐지 윈도우 API 함수이다. 이 함수는 PEB 구조에서 IsDebugged 필드를 찾아 디버그가 동작 중인지 판단하여 동작 중이 아니라면 0, 동작 중이라면 0이 아닌 값을 반환한다. 그..

대충 이러하다. ida로 까보자 int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rax __int64 v4; // rax __int64 v5; // rax __int64 v6; // rax __int64 v7; // rax __int64 v8; // rax __int64 v9; // rax __int64 v10; // rax __int64 v11; // rax __int64 v12; // rax __int64 v13; // rax __int64 v14; // rax __int64 v15; // rax __int64 v16; // rax __int64 v17; // rax __in..
문제를 조건에 맞게 해결할 때 사용하는 라이브러리 from z3 import *s = Solver()일단 Solver()로 인스턴스 생성 x = Int('x')s.add(x > 0)s.add(x add()로 제약 조건 추가 result = s.check()check()로 해당 조건으로 문제가 해결되는지 판단 sat(가능) unsat(불가능) unknown(몰라) if s.check() == sat: m = s.model() print(m[x])sat일 시(가능하다면) model()로 해 반환 추가 기능은 코드로 한 번에 정리 # push()와 pop(), 스택 관리 s.push() # 현재 상태 저장s.add(x == 5)s.pop() # 이전 상태로 복원# reset() 초기화 ..

그냥 읽으라고 한다 설명에 script 쓰라고 하는데.. 안 써봐서 약간의 노가다를 각오하고 풀고 라업 참고해서 배워보려한다(변명하자면 script 예시가 잘 안 보여서 어떻게 쓰는지 숙지가 안됐다) 어떤 연쇄적인 리스트에 대해 malloc 해주고 append_list하는 코드이다. append_list 함수를 읽어보자. __int64 unknown_func1(){ return (unsigned int)cnt;} cnt를 return한다 __int64 unknown_func2(){ int v1; // [rsp+0h] [rbp-4h] return (unsigned int)(9 * (3 * (v1 + 5) - 7));}v1에 대한 계산값을 출력한다. __int64 generate_flag(){ ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
파일을 실행하면 이렇게 뜬다 아이다로 디컴파일 했을 때 main이 위와 같다. 결론부터 말하면 위 for문을 반대로 만들면 끝나는 문제이다. //원래 코드 for ( i = 27; i >= 0; --i ) *v3++ += byte_406000[i] - i; //수정 코드 for ( i = 0; i byte_406000의 배열은 위와 같다(16진수) 푸는 방법은 두 가지가 있다. 1. 파이썬이나 C++로 코드를 작성하고 실행하기 2. 어셈블리 수정 어셈블리를 이해한다면 이걸 수정하는 편이 더 편하다(코드를 작성하려면 조금 귀찮다) 간단하게 sub cl, al에서 sub를 add로만 바꿔보자 아래 덤프를 보면 문자열이 담긴 것을 알 수 있다. 다만 경고창에 SWING{} format이 맞냐..