파일 실행 먼저 다운로드 받은 파일을 실행하여 프로그램이 어떤 식으로 동작하는지 확인합시다. 참고로 위게임 문제와 같이 신뢰할 수 없는 프로그램을 실행할 때는 가상환경(VM)에서 실행하는 것이 good! 만약 문제 정보를 통해 프로그램의 동작 방식이 예상이 간다면 실행하지 않고 정적분석을 먼저 시도도 좋은 방법 윈도우 OS에서 기본적으로 제공되는 Windows PowerShell에 문제 파일을 실행한 모습을 보여주자면.. 문제가 사용자에게 문자를 입력받고 프로그램 내부의 어떤 검증과정을 거쳐 입력한 문자열이 검증을 통과했다면 Correct, 통과 못하면 Wrong을 출력하는 방식으로 동작하는 걸 유추가능 그렇다면 문제의 정답(flag)은 검증과정을 통과하여 Correct가 출력되도록 하는 입력값이 될 거..
분석(Export)! 예제로 HelloWorld.exe를 분석해보는 실습을 해봅시다. 예제엔 1초를 대기 후 Hello, world!를 출력하는 프로그램으로, 오른쪽에서 내려받을 수 있습니다. 여러분이 직접 컴파일하고 분석할 수 있게 코드도 친절히 올려야죠 우리는 이 코드에 대하여 아무것도 모른단 전재하에 진행해야 리버싱이겠죠 자 그럼 한번 밑에 exe 파일을 다운로드 받거나 컴파일 하셔서 확인해봅시다 참고로 전 IDA 쓸거예요 /* File: hello-world.cpp Build opts: - /MT -> Library Static Linking - /DYNAMICBASE:NO -> Disable ASLR - /od -> Disable Optimization */ #include #include ch..
x86 Assembly🤖: Essential Part x86 Assembly: Essential Part 해커의 언어: 어셈블리💬 PC에서 복잡한 논리적 인과관계, 여러 개체가 상호작용하며 그 세계에서 통용되는 기계어(Machine Code)언어 핵심! 시스템 해킹을 할 때는 컴퓨터 언어, 운영체제, 네트워 dystopia050119.tistory.com Quiz: x86 Assembly Quiz: x86 Assembly dystopia050119.tistory.com 기존에 정리된 부분이 있었네요.. 시스템을 하기전에 이 커리큘럼을 먼저할걸.. ㅠ 제가 이 블로그를 하는 이유는 여러 이유가 있지만 그 중에 하나가 포폴용이라서 이번만 날먹할께요 헷 참고 자료 x86 Assembly🤖: Essential ..
Computer Architecture Computer Architecture 1. 컴퓨터 구조(Computer Architecture) 컴퓨터 과학에서는 PC설계를 여러 하드웨어가 개발되고, 이들을 조립해서 컴퓨터가 완성한 것이 컴퓨터 구조! 더보기 📜개요📜 컴퓨터 구조(Computer Architecture) dystopia050119.tistory.com 퀴즈는 딱히 설명 안 할께요 저거 봤으면 진짜로 기초니까 어짜피 모르시면 다시 배워야해요 Background: Windows Memory Layout 메모리 레이아웃(Memory Layout) : 프로세스 가상 메모리(Virtual Memory)의 구성 프로그램을 실행하면 OS는 프로세스에 사용 가능한 메모리 공간을 할당하며, CS에선 이 공간을 ..
리버스 엔지니어링 정적 분석(Static)과 동적 분석(Dynamic) 구분 정적 분석 : 외적인 관찰만을 통해 정보를 취득 동적 분석 : 실행을 통해 동작을 분석하는 것! 대게 정적인 방법과 동적인 방법을 적절히 혼용하면 대상을 효과적으로 분석 가능! 동적인 방법만을 고수하면 큰 구조를 놓칠 수 있고, 반대로 정적만 고수하면 실행을 통해 직관적으로 알 수 있는 부분을 분석하느라 시간을 허비할 가능성이 농후하죠.. 따라서 우리는 정적 분석과 동적 분석 중 한 방법만을 고수하는 것이 아닌 상황에 따라 적절한 방법으로.. 어떤 상황에 어떤 방법을 선택할 것이냐가 실력을 좌우하는 중요한 요소죠 정적 분석(Static Analysis)🔍 정적 분석(Static Analysis) : 프로그램을 실행시키지 않고 분..