본문 바로가기
728x90

해킹/시스템해킹10

어셈블리어 문법 간단 정리 오늘은 리버싱을 할 때 많이 보는 어셈블리어를 간단하게 살펴보도록 하겠습니다. 예전에 처음 배울 땐 참 많이 헷갈렸었는데 이제는 잘 알아보게 됐으니... 정리를 해야겠어요 -MOV A B : B의 값을 A에 옮깁니다. 만약 MOV RAX 100 같은 경우에는 RAX = 100; 과 같이 생각하시면 됩니다. 하지만 연산을 포함할 수는 없습니다. 연산을 포함 시키는 MOV 를 LEA 라고 할 수 있습니다. -LEA : A 의 값을 B의 값으로 연산을 포함하여 복사 LEA EAX, [EAX + 1000] 다음과 같으면 EAX + 1000을 넣은 값을 EAX 에 다시 넣어줍니다. LEA EBX, [EAX + 1000] 만약 다음과 같다면 EAX 의 값 차이는 없겠죠? -JMP : 특정 위치로 건너 뛰어서 코드 .. 2020. 8. 3.
시스템 해킹 echo 구현 오늘은 어셈블리어 코딩으로 echo 구현해봅시다. nano echo.s 를 열어봅시다. 함수 _start를 실행시켜줍니다. xor 를 동일한 변수로 하면 반드시 0이 나옵니다. 첫번째 줄이 지나면 rax 에는 0이 들어있고 두번째 줄 부터 세번째 줄 까지는 레지스터를 다 초기화 시킨겁니다. rsp 에서 64 를 sub 해주는건 스택이 64에 공간을 마련한 겁니다. rdi = 0 rsi = rsp rdx = 63 시스템 콜을 하는데 rdi 에 0 이 들어있고 rsi 가 포인터니깐 스택의 위치를 가리키고 rdx 에 들어 있는 수 만큼 read 한다. rax 에 1 rdi 1 rsi 에 스택 포인터 위치 rdx 에 63 하면 read 했던 걸을 화면에 63 길이 만큼 출력해주는 syscall 을 부르는 겁니다.. 2020. 8. 3.
시스템해킹 메모리 커럽션 메모리 커럽션(Memory Corruption) , Corruption 은 구글에 치니 부패라는 뜻이 나오네요. 메모리를 오염시키는거니깐 대충 뜻이 맞는거 같습니다. https://com24everyday.tistory.com/224 시스템 해킹 기초 취약점의 분류 익스플로잇이란 사전적으로 악용, 취약점을 이용해 공격자가 의도한 동작을 수행하게 하는 코드 혹은 이를 이용한 공격 행위를 의미 소프트웨어 버그(Bug) : 프로그래머가 의도하� com24everyday.tistory.com 저는 띠오리라는 보안 회사에서 만든 '드림핵'이라는 프로그램으로 공부를 하고 있습니다. https://dreamhack.io/ 해커들의 놀이터, DreamHack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 .. 2020. 8. 2.
시스템 해킹 기초 취약점의 분류 익스플로잇이란 사전적으로 악용, 취약점을 이용해 공격자가 의도한 동작을 수행하게 하는 코드 혹은 이를 이용한 공격 행위를 의미 소프트웨어 버그(Bug) : 프로그래머가 의도하지 않은 동작을 수행 소프트웨어 취약점(Vulnerablility) : 소프트웨어 버그 중 보안에 영향을 미칠 수 있는 버그 익스플로잇 가능한 취약점(Exploitable) : 소프트웨어 취약점 중 공격자가 의도한 동작을 수행할 수 있는 버그 그러나 익스플로잇이 가능하다고 해서 익스플로잇을 항상 안정적으로 성공할 수 있지는 않음. 보안 취약점에서 익스플로잇 확률은 위험성을 평가하는 중요한 요소 중 하나, 이게 높을수록 무기화 되어 사용하기 유용, 공격 탐지될 확률 줄어듦. 안정적으로 익스플로잇 가능한 취약점(Reliab.. 2020. 8. 1.
728x90