본문 바로가기

해킹/시스템해킹10

포맷 스트링 버그(Format String Bug) 과 Double Free,UAF 보호되어 있는 글 입니다. 2020. 10. 11.
로지컬 버그 https://dreamhack.io/ 해커들의 놀이터, DreamHack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io 저는 드림핵에서 강의를 수강하고 있습니다. 로지컬는 지난번에 배웠던 메모리커럽션과는 달리 메모리를 조작하는 것이 아닌 프로그램의 논리적 오류를 이용합니다. https://com24everyday.tistory.com/225 시스템해킹 메모리 커럽션 메모리 커럽션(Memory Corruption) , Corruption 은 구글에 치니 부패라는 뜻이 나오네요. 메모리를 오염시키는거니깐 대충 뜻이 맞는거 같습니다. https:.. 2020. 8. 6.
시스템 해킹 별 찍기 프로그램 구현 이와 같은 별 찍기를 어셈블리어로 작성해봅시다. 먼저 c 언어 코드로 작성을 해보았습니다. 이제 이걸 어셈블리어 코드로 옮겨볼겁니다. n = 높이 = r8 i = 큰 = r9 j = 작은 = r10 으로 할당해주겠습니다. 다음과 같이 '*' 문자열을 가리키는 STAR 와 0x0a - 줄바뀜 변수인 EMPTY 를 선언해줍니다. WRITE 를 해야하기 때문에 rax 에는 1을 넣어주고 rdi 모드도 1로 선언해줍니다. 별을 하나씩 출력해줄거기 때문에 rdx 에는 1을 넣어주어야합니다. r10 는 위에서 말했듯이 j 이기 때문에 0으로 초기화를 해줍니다. 스택 프레임이 받은 변수 7, RET , RSP 이렇게 깔립니다. 64비트기 때문에 각자 8비트가 됩니다. 그래서 입력된 수를 받기 위해서는 RSP + 16.. 2020. 8. 4.
어셈블리어로 반복문 구현 다음은 100회 반복하면서 A 를 출력하는 반복문이다. for(int i = 0; i write 해야하기 때문에 rdi 도 write 니깐 1을 넣어주고 msg 를 출력해야하기 때문에 rsi 에 넣음 또 변수 r10 에 1을 넣어줌. 이는 for 문에서 index 와 같은 역할을 함. 3. again 함수 정의 cmp 은 A 와 B를 비교해주는 명령어이다. je 는 비교 결과가 같으면 다음 주소로 점프해주는 명령어다 . 즉 r10이 100과 같으면 don.. 2020. 8. 3.