목록전체 글 (66)
ghkdtlwns987
우선 리눅스롤 power_off 한 후에 Edit 창에 들어가서 Expand 를 누른다. (난 suspend라서 안됨)(그냥 보여주려고) 용량 설정 후 리눅스에 들어간다. sudo apt-get install gparted 설치 하고 sudo gparted 명령어 치기 위의 창에서 드리고 해서 용량을 설정 하고 빨간 부분을 클릭하면 성공적으로 용량이 확장된다.
시험 끝! 헤헹 FULL RELRO, NX enabled 되어 있다. 그리고 libc_32.so.6 파일을 준다. -> 그렇다는 건 libc_base 를 구해야 할 것이다. main 함수 더보기 int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int v5; // [esp+0h] [ebp-3Ch] const char *v6; // [esp+4h] [ebp-38h] char s; // [esp+8h] [ebp-34h] ebp - 0x34 int v8; // [esp+38h] [ebp-4h] init_proc(); v8 = 0; memset(&s, 0, 48u); // ebp-0x34(52byte) v5 = 0x..
시험기간이고, 시험 3일 남았는데, 멘탈 터져서 유튜브 보던 중, RTL 에 대해 물어보는 사람이 있어서 설명 해 준 김에 글을 적어보았다. ㅎㅎ 꽤 많은 사람들이 RTL을 설명할 때 왜 Dummy 값을 넣어주어야 하는지 모르는 사람이 꽤 있는거 같아서 글을 써보고자 한다. (Dummy 에 들어가는 곳은 RET 에 넣어준 함수가 종료된 후 호출하는 주소 라는 정도만 알고있는 것 같다.) RTL 에서 Dummy() 값에 왜 넣어주는지, 이유가 무엇인지, 한번 알아보도록 하자. 사실 이러한 원리는 스택 구조를 알아야 한다. 그 전에 leave, ret, call 명령어가 무엇을 의미하는지 보고 넘어가겠다. leave = mov esp ebp pop ebp ret = pop eip jmp eip call = ..