Sunrin(3)
-
실수와 실수의 곱은 왜 실수인가?
Q.E.D
2020.10.10 -
IA-32 Register 설명
CPU 레지스터란? - 레지스터(register)란 CPU 내부에 존재하는 다목적 저장 공간입니다. - CPU 내부의 RAM 보다 속도가 훨씬 빠르고 작은 다목적 저장 공간 레지스터를 알아야하는 이유 - 어셈블리 명령어의 대부분은 레지스터를 조작하고 그 내용을 검사하는 것들인데 정작 레지스터를 모르면 명령어 자체도 이해하기 힘들어지기 떄문입니다. 리버싱에 초 단계에서는 기본 프로그램 실행 레지스터에 대해 알아두어야 합니다. 디버깅을 할 때 가장 많이 보게 될 레지스터 입니다. 기본 프로그램 실행 레지스터(Basic program execution register) - 기본 프로그램 실행 레지스터는 다시 4개의 그룹으로 나눌 수 있습니다. 1. General-Purpose Register(범용 목적 레지스..
2019.09.10 -
lob 8번 풀이 orge -> troll
이제 인자를 더도말고 덜도말고 꼭 2개를 넣어주어야 하네요. 그리고 이젠 argv[1]까지 맨 밑에 부분에서 초기화를 시켜줍니다. 그런데 이 부분이 오버플로우 결함이 있는 함수인 일단 ret의 주소를 넣어줄 수는 있을거 같네요. argv[0] 공간을 쓸 수 있지 않을까요? 저번처럼 심볼릭 링크로 쉘코드를 넣어주면 되지 않을까요? 오오 쉘코드로 진짜 이름이 만들어지네요. (코어파일은 블로그 쓰기 전 노가다 테스트 때문에 있습니다.) 이제 ret의 넣을 값을 argv[0]의 주소로 만들어주면 될거 같아요. segment fault가 일어나서 core 파일이 있으니까 한 번 분석해봅시다. 0xbffffb50라는 쉘코드가 있는 주소를 찾았습니다. 아까 잘 안 돼서 찾아보니까 /x2f가 아스키코드로 /여서 잘 안..
2019.07.28