본문 바로가기

c++ 템플릿 공부 두 값을 더하는 add연산을 하는 함수를 만들어야 한다는 상황을 가정해보자1234567891011121314151617181920212223242526272829303132333435363738394041#include /*int add(int a, int b) { return a + b;}double add(double a, double b) { return a + b;}std::string add(std::string a, std::string b) { return a + b;}*/ template T add(T a, T b) { return a + b;} // 특수화 (Specialization)template int add(int* a, int* b) { return *a + *b;} int ma.. 더보기
gdbserver 디버깅 따로 ida에서 제공하는 dbgsrv에서 쓸만한게 없다면 gdbserver를 올려서 디버깅 해야한다. 서버에 gdbserver를 static으로 서버 환경에 맞게 컴파일하거나 이미 컴파일 된 파일을 다운 받아서 올리고 "sudo ./gdbserver 127.0.0.1:port ./binary" 이렇게 실행하면 된다. port부분에 1337, 7777처럼 포트 번호를 넣으면 된다. (해당 포트포워딩은 외부로 해 둬야 한다.)가끔씩 sudo를 안해서 ida에서 오류가 날 때가 있으니 해주는게 좋다.그리고 ida로 debugger를 Remote GDB debbuger로 설정하고 Debugger - Process Options에서 Application, Input file을 서버에서의 파일 위치로 잡고, Par.. 더보기
YISF 2017 예선 Write-Up 이번엔 뮤쀼로 참가했다.Web - 50, 100, 150, 200 Forensic - 50, 100 Reversing - 50, 100, 150, 200 Pwnable - 50, 100, 150, 200 Misc - 50, 100, 150, 200리버싱 300 바이너리랑 풀이 코드 https://github.com/5unKn0wn/ctfs/tree/master/yisf2017/reversing300리버싱 300 가상화 문제라서 오래걸릴 줄 알고 안풀었는데 분석 해보니까 xor만 하는 생각보다 간단한 가상화였다. 더보기