0x200 프로그래밍

2024. 3. 6. 14:17해킹 : 공격의 예술

320x100
해킹의 본질은 기존의 규칙과 지식으로는 예상할 수 없고 의도하지 않은 사용법을 찾은 후 그것을 이용해 새롭고 창조적인 방법으로 문제 해결을 시도하는 것이다.
-p17-

 

제어구조

if-else, while 루프, for 루프

동쪽으로 난 메인가로 출발하라;
//whlie 루프 : while 조건이 참일 때 루프 안의 명령 세트를 반복적으로 수행
while (오른쪽에 교회가 없다)  //오른쪽에 교회가 보일 때까지 메인가로 직진하라
	메인가로 직진하라;
//If-Else : 어떤 일이 일어나면 어떤 일을 하고, 아니면 다른일
if (길이 막혔다면)  //길이 막혔을 경우 해당 일을 수행
{
	15번가에서 우회전;
	파인가에서 좌회전;
	16번가에서 우회전;
}
else 16번가에서 우회전;  //길이 막히지 않았을 경우 해당 일을 수행
데스티네이션 로드에서 좌회전;
//for 루프 : 특정 횟수로 반복하고 싶을 때 사용. 카운터를 가진 while 루프.
for (i=0; i<5; i++)  //(카운터 선언&초기화; 카운터 조건; 반복마다 카운터에게 명령을 행하는 부분)
	1마일 직진하라;
743 데이티네이션 로드에서 멈춰라;

 

변수

바뀔 수 있는 데이터를 갖고 있는 객체

 

int(정수 변수)

float(부동소수점 변수)

char(단일 문자 변수)

 

상수

바뀌지 않는 변수

 

어셈블리어 언어

명령 <목적지>, <근원지>

 

mov 명령 근원지에서 목적지로 값을 이동시킴

sub  명령 빼기

inc  명령 증가

cmp  명령 값을 비교

 

-g 플래그 GDB 컴파일러 사용 시 GDB에서 소스코드를 볼 수 있는 추가 디버그 정보를 포함시킴

 

GDB 디버거

o   8진법으로 보여줌

x   16진법으로 보여줌

u   부호가 없는 표준 10진법으로 보여줌

t   2진법으로 보여줌

 

크기 문자

b   단일 바이트

h   2바이트의 하프워드

w   4바이트의 워드

g   8바이트의 자이언트

 

해커 정신은 막을 수 있는 성질의 것이 아니며, 쉽게 분류되거나 분석될 수 있는 것도 아니다.
해커는 항상 좀 더 깊은 지식을 탐구하기 위해 지식의 한계를 끊임없이 늘리고자 한다.
-p20-
320x100
320x100