목록분류 전체보기 (103)
White Security
Vim 을 처음 설치하고 나면한글을 비롯하여 기타 언어들이 제대로 표시되지 않습니다. 이는 기본 인코딩이 latin1으로 설정되어 있기 때문인데요.설정 변경으로 간단히 해결할 수 있습니다. Vim에 들어가 :set encoding=utf-8을 입력하면 글자가 제대로 표시되는것을 확인할 수 있습니다. 이를 영구적으로 설정해주려면홈 폴더의 .vimrc 파일을 수정하여 주면 되는데요. 모든 유저에게 적용하려면/etc/vim/vimrc 파일을 수정하면 되겠습니다. encoding 옵션은 표시 옵션이며fileencoding은 파일 입출력시의 옵션이기에 encoding 만 설정해두고 fileencodings 설정을해 주지 않으면, Vim에서는 제대로 나오나타 프로그램에서 제대로 표시되지 않을 수 있습니다.
한글 언어셋으로 하여 리눅스를 설치하고 나면기본 폴더가 한글명으로 생성되어 있습니다. 홈 폴더의 .config/user-dirs.locale 파일을 확인해보면ko_KR 이라고 언어셋이 명시되어 있습니다. 이를 en_US 로 바꾸어주면 되는데요.gedit vim emacs 좋을대로 사용하셔서 바꾸어 줍니다. xdg-user-dirs-gtk-update위 명령을 사용하여 발생한 윈도우에서이름 변경이 목적이니 Update Names 를 선택해 주어설정을 적용하여 주면 되겠습니다. 만약 변경 전, 폴더에 무언가 파일이 있었다면특이한 이름의 폴더가 남습니다. 따라서 mv, cp 등을 이용해 모든 내용물을새로운 폴더에 이전시켜 주신 후삭제하여 주시면 되겠습니다.
Mommy, what is Use After Free bug? ssh uaf@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 16번 문제 Use After Free 라는 메모리 참조 취약점을 다루는 문제입니다. Use After Free 줄여서 UAF 취약점은 동일한 메모리 영역을 재할당하게 됨으로써 발생하는데요. 해제과정을 거친 메모리에 접근하게 되면 세그먼트 폴트 에러가 발생하는데 동일한 부분을 재할당하여 다른 데이터를 채워넣는 것으로 의도치 못한 동작을 야기할 수 있습니다. #include #include #include #include #include using namespace std; class Human{ private: virtual void give_sh..
레나의 리버싱 10강 분석 포스팅입니다. 바이너리는 이곳에서 받아보실 수 있는데링크 사용이 되지 않는다면위 첨부파일을 이용하시면 되겠습니다. 만약 프로그램 실행시에MSVBVM50.DLL 관련 오류가 발생한다면동봉된 프로그램을 사용하시기 바랍니다. 프로그램을 실행하면 Nag Screen 이라는 이름으로알림 메시지가 하나 뜹니다. 모든 Nag(잔소리)를 제거하고올바른 인증 코드를 찾아내라는 것인데요. 프로그램을 확인하면Register me!와 Nag 2개의 버튼이 존재합니다. 첫번째 Register me! 버튼을 눌러보면인증 키가 잘못되었다고 알려주는데요. 두번째 Nag 버튼을 눌러보면처음에 나온 내용과 완전히 동일한 메시지가 등장합니다.아무래도 이 알림을 Nag 라고 하는 것 같습니다. 따라서 문제가 요구..
abex' crackme 2번째 버전입니다.포스팅을 매일 적어도 하나씩은 올리기로 했었는데열심히 분석하다보니 이틀이 지나가버린거 있죠. 크게 어려운 문제는 아니지만한줄한줄 분석하다보니시간이 참 빨리갑니다. 프로그램을 실행해, About 버튼을 눌러보면 제작시기를 확인할 수 있습니다.지금이 2019년이니.. 무려 19년이 넘었군요. Check 버튼을 눌러 인증을 시도해보면serial 값이 잘못되었다고 알려줍니다.프로그램 내부에서 생성하는 시리얼 값을 찾아입력해주면 되는 문제같습니다. 참고로 name이 3글자 이하가 되면4글자 이상을 입력하라며 오류가 나타납니다. 올리디버거를 사용해 바이너리를 열어 보았습니다.파란 배경으로 표시된 401238이 바로 EntryPoint 입니다. 먼저 PUSH를 통해 401E..
가장 유명한 Crackme abex' crackme 포스팅입니다. 원 출처는 이곳이나정상적으로 작동하지 않으니바이너리가 없으신 분들은첨부한 파일을 사용하시면 되겠습니다. 프로그램을 실행하면먼저 위와 같은 메시지를 확인하실 수 있습니다. HD를 CD-ROM으로 생각하게끔 하라고 하네요.여기서 HD는 HDD를 의미합니다. 창을 종료하면, 두번째 메시지가 나타납니다.HD가 CD-ROM으로 인식되지 못했다는 의미인데요. 프로그램이 HD를 어떻게 CD-ROM으로판단하는지 기준을 찾아문제를 해결하면 되겠습니다. ollydbg로 바이너리를 열어 확인하면아주 짧은 어셈블리 소스를 확인할 수 있습니다. 상용 컴파일러 특유의stub code가 존재하지 않는 것으로 보아 처음부터 어셈블리어로 작성했다는 것을알 수 있는데요...
Daddy bought me a system command shell. but he put some filters to prevent me from playing with it without his permission... but I wanna play anytime I want! ssh cmd2@pwnable.kr -p2222 (pw:flag of cmd1) Toddler's Bottle 15번 문제 직전 cmd1 문제의 발전형입니다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "=")!=0; r += strstr(cmd, "PATH")!=0; r += strstr(cmd, "export")!=0; r += strstr(cmd..
Mommy! what is PATH environment in Linux? ssh cmd1@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 14번 문제 PATH 환경변수에 관한 문제입니다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, "tmp")!=0; return r; } int main(int argc, char* argv[], char** envp){ putenv("PATH=/thankyouverymuch"); if(filter(argv[1])) return 0; system( argv[1] ..