해킹을 시작하기 전에 기초를 공부하기 위해 OverTheWire에서 Bandit을 풀어보았다. > Level 0 >The goal of this level is for you to log into the game using SSH. The host to which y
어셈블리어(Assembly language)는 컴퓨터 프로그래밍 언어 중 하나로, 기계어(Machine language)를 기반으로 한 낮은 수준의 프로그래밍 언어이다. 기계어는 0과 1로 이루어져 있어서 사람이 직접 작성하기 어렵고 이해하기 어렵기 때문에, 어셈블리어
리버싱을 시작하면서 간단한 코드를 분석해보겠다.Hello World를 출력하는 c코드이다.위와 같이 컴파일하였다.이제 gdb를 이용하여 분석해보자.main 함수를 disassemble한 결과는 다음과 같았다.이 코드는 prinf 함수를 실행하는 간단한 코드이기에 복잡한
assignment1을 분석해보겠다.main 함수의 disassemble 결과는 다음과 같다.대충 봤을 때, 뭔가 문자열을 출력하고 입력을 받은 후에 원하는 flag와 동일하다면 문자열을 출력해주고 끝내며, 다르다면 그냥 종료시키는 프로그램인 것 같다.하나씩 살펴보도록
IDA로 까봤다.가장 중요한 부분은 for분 내부로 보인다. ai 와 xor1i ^ v4i ^ xor2i가 같아야 한다!a와 xor1, xor2에 저장된 값들을 확인할 수 있었다. 정리하면 다음과 같다.xor에는 몇가지 성질이 있다. 자기 자신과 xor하면 0이 되고
handray.exe 파일을 c코드로 옮겨보자. 먼저 main 함수의 disassemble 결과다.중간에 Same 함수를 호출하는 부분이 보인다. Same 함수도 살펴보자.먼저, 메인 함수에서는 0x4321을 저장하여 Same 함수의 인자로 넘긴다.Same 함수를 보
LOB 1 - gremlin gremlin.c를 열어보았다. 크기가 256 바이트인 버퍼에 scanf로 입력받고 이를 출력한다. 굉장히 간단한 코드이다. scanf로 입력할 때 shellcode를 입력하고 buffer의 크기를 넘어서 ret를 buffer의 주소로