
일반적으로 그냥 '애플 칩과 인텔 칩이 따로 개발이 되어있고 호환이 어렵다'라는 것은 당연히 개발사가 다르니까 호환이 어렵겠다 정도로 알고있었다.하지만, 정확히는 이루고 있는 Architecture가 다르기 때문에, Apple은 ARM 기반 Architecture, I

실행 후 eax의 값은? 코드를 한 줄씩 봤을때 초기 메모리 저장 상태는 위와 같다. mov를 통해 각 메모리에 값이 저장된다.위 명령어는 edx += eax 와 같다.이후 0x8 주소의 값을 다시 eax에 저장하고 마지막으로 eax += edx를 하게 되면 정답은 9

Compile은 사람의 언어로 작성된 Source Code를 컴퓨터 언어로 표현하는 것이다.컴파일 전처리 단계에서 주요 Task는 두 가지로 헤더 파일 삽입과 매크로 치환이 있다.컴파일 과정은 Front End와 Back End로 나뉘고Lexer와 Parser가 토큰을
Stack 메모리 영역: 메모리 영역 중 하나로 함수의 지역변수를 저장하는 데 사용된다.레지스터:rsp: 스택 포인터 레지스터.rbp: 베이스 포인터 레지스터.rip: 명령어 포인터 레지스터.스택 연산:push: 값을 스택에 추가하고 rsp 감소.pop: 값을 스택에서
위는 handray1 파일을 gdb로 disassemble한 결과이다.문제의 힌트는 위와 같다.그럼 어셈블리를 다시 살펴보면 37라인 "printf"함수를 호출하고 있다.따라서 flag는 printf와 a변수 즉, printfaHint : \_\_\_판별기 (판별기 까
Decompile : Reverse of Compile 실행가능한 Binary 파일을 다시 C 코드로 바꾸는 작업 Decompiler Tools Ghidra : Github에 공개되어있어 무료로 많은 해커들이 사용 IDA : free버전과 Pro 버전으로 나뉘어 있

IDA로 그냥 열어보면대놓고 rodata 섹션에 flag가 존재한다.이 문제도 마찬가지 IDA로 그냥 열어보고, View Strings 탭에 들어가보면 대놓고 flag가 있다.IDA로 열어보면 main function이 이렇게 보인다password를 입력받고 해당 pa

Debugging >실행파일의 어셈블리를 원하는 단계까지 실행시키며 메모리의 변화를 관찰 정적분석 > 바이너리를 실행하지 않고 분석(disassemble, IDA분석 등) 동적분석 > 바이너리를 실행하며 동적으로 변화를 관찰(debugging, emulating)

이런 실행파일이 있다고 해보자입력 값을 4개를 받고 어떤 로직을 통해 출력값을 표시하는 방식인것 같다.IDA를 통해 분석해보자main function은 sub_1249를 통해 v4에 저장하고 특정 로직을 통해 flag값을 주는 모양이다sub_1249를 살펴보자scanf

1. quick > ida로 살펴봤을때 strcmp로 비교하기 전에 아마 flag 문자열을 만들어 놓았을 것이다. 그래서 gdb를 통해 해당 주소까지 실행을 시켜본다. 바로 flag값이 보인다. 2. ex. Cipher > 아니 왠 py 파일이 있다 반갑다. 이

IDA로 열어보면요런 함수가 나온다. 뭐 길게 헤멜것 없이 요약하면 다음과 같다말로는 shuffle 이기는 한데 정작 나오는 결과는 flag에 Reverse를 취한 것일 뿐이다.따라서 아래와 같이 나오는 문자열이 고정된다그러면 이런식으로 flag의 format Stri