일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JUCE 튜토리얼
- 공룡책
- tour of go
- Docker
- LOB
- go
- Nebula
- 알고리즘
- vim-go
- 백준
- C++ library
- C++ gui 라이브러리
- JUCE library
- a tour of go
- 연결리스트
- 코딩
- 운영체제
- OS
- C++
- 프로그래밍
- JUCE라이브러리
- JUCE
- 자료구조
- 리듬게임
- BOJ
- gui
- c++ heap
- C++ gui
- go channel
- C언어
- Today
- Total
목록CafeM0ca (266)
CafeM0ca
ID:iron_golemPW:blood on the fedora어디보자..gate에서 썼던방법은 못 쓴다. sfp를 저장해놨다가 다시 복구해버리니 덮어버려봤자 쓰레기값이 들어있을꺼다.힌트에 Ret sleding이라 써있는데 ret가젯을 적절히 사용하면 되나보다. ebp-268이 sfp고 ebp-264가 버퍼다. ebp를 확인해보니 저 어딘가 심볼릭링크를 걸어주고 execl을 호출하면 될꺼같다.ebp+24부분을보면 0x83eff4가보인다. ebp+28이 NULL이니까 저기를 사용해보자. execl을 사용하니 인자가 제대로 안박힌다. execv를 사용하자.첫번째인자는 path고 두번째인자는 argv니까 여기서는 두번째인자가 필요없으니 NULL을 준다. 0x83eff4에 심볼릭링크를 걸어주면된다. payloa..
ID:gatePW:gate ssh로 접속해야한다. 처음에 이걸 몰라가지고 한참 어리둥절했었는데.. 벌써 그게 4달전이다. ssh gate@ip 거져주는 문제같지만 보호기법때문에 까다롭다. main+81부분을 보면 strcpy를 호출하고 있다. 인자로 ebp-264가 들어가니 스택을 확인해보면buffer(256) | dummy(8) | sfp(4)=ebp | ret(4)=ebp+4 로 구성되어 있다. 자자..그럼그럼 쉘코드도 사용못하고 라이브러리함수는 1번밖에 호출이 안되는데 system함수를 사용하자니 권한이 다운되어 못써먹는다. exec계열의 함수로만 가능한데 그렇다면 변조된 스택은 아래와 같이 될꺼다.A(268) | exec계열함수(4) | ret(4) | 인자1(ebp+8) | 인자2 ....그런데..
FC3는 RedHat보다 보호기법이 여러개 추가 되었다. 보호기법 FC3 RedHat 랜덤스택 O X 스택더미 O X 아스키아머 O X NX-bit (stack,heap) O X ASLR(address space layout randomization): 주소가 매번 일정하지 않다. FC3에서는 스택에만 적용되있다. StackDummy: 스택사이에 더미(쓰레기값)이 껴있다. ASCII armor: 공유라이브러리의 시작주소가 0x00으로 시작한다. NX(Never eXecute bit): 메모리의 실행권한이 없다. 즉 쉘코드 올려서 공격이 불가능. 추가로 bash의 권한이 다운되었다고 하는데 system함수로 쉘을 획득할 수 있지만 권한이 상승하지는 않는다. exec계열의 함수만 가능하다.FC3를 도전하기전..
www.boost.org 에서 최신버전을 다운받는다. 모카는 1.66.0버전+ 2018/4/2 https://www.boost.org/doc/libs/1_66_0/more/getting_started/unix-variants.html압축해제tar -xvf boost_1_66_0.tar.bz2 /usr/local로 옮기자.mv boost_1_66_0 /usr/local boost 디렉토리안에 bootstrap.sh파일을 실행한다$ ./bootstrap.sh --prefix=path/to/installation/prefixb2를 설치sudo ./b2 install 마무리./bjam link=static stage asio예제가 있는데(https://www.boost.org/doc/libs/1_66_0/doc..
TCP/IP boost라이브러리https://www.slideshare.net/jacking/kgc-2012boostasio 모던C++C++17 https://www.slideshare.net/utilforever/c-korea-2nd-seminar-c17-key-features-summary git 가이드http://rogerdudler.github.io/git-guide/index.ko.htmlhttps://backlog.com/git-tutorial/kr/https://opentutorials.org/course/1492 gcc 플래그옵션https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/ 라이센스 글http://w..
이펙티브 C++ -읽는중more 이펙티브 C++이펙티브 모던 C++이펙티브 STLSKY OS공룡책 - 읽는 중 fundamental C++ 프로그래밍 원리 - 읽는중신경망의 기초부터 C++를 이용한 구현까지 C++로 배우는 딥러닝(후지타 타케시) - 읽는중boost.Asio C++ 네트워크 프로그래밍 쿡북(acorn+packt 시리즈)boost 라이브러리 예제로 배우는 Boost C++ 애플리케이션 개발(안토니 폴루킨)C & C++ 시큐어 코딩(로버트 시코드)GoF디자인패턴elementary 디자인패턴 : Gof의 어려운버전컴퓨터구조 및 설계 하드웨어 소프트웨어 인터페이시스강화학습 자료 https://www.slideshare.net/ShinwooPark3/rl-from-scratch-part1 뒤 pa..
ID:nightmarePW:beg for me표준입력이고 ret빼고 다 초기화해버린다. ebp-40이 버퍼다. ebp-44부분이 ret_addr 포인터다. 저부분이 \x90\x90이 아니면 ret_addr을 ++해준다. 따라서 \x90을 만날때까지 무한루프. 표준입력이니까 stdin버퍼에 쉘코드를 올리고 익스플로잇할꺼다.4번째(0x40015000)가 stdin버퍼의 시작점이다. A를 입력하면 stdin버퍼에 고스란히 남아있다. 스택은 아래와 같다.ret_addr 4| buffer 40 | sfp | ret ret_addr이 \x90\x90을 만날때까지 무한루프이므로 buffer에 \x90\x90을 채워주면 된다. exploit맨 앞에 $을 붙여서 6시간동안 삽질했다..(왜 안되는거지?ㅠㅠ 하면서..)
형변환(cast)에는 2가지가 있다. 첫번째는 명시적 형변환. 두번째는 묵시적(암시적) 형변환.형변환을 하는 이유는 타입(자료형)에러가 나지 않도록 하기 위함이다. 구형 스타일 형변환123456int main(){ double x=5.5; int y=x; //묵시적 케스팅 y=5 char z=(char)y //명시적 케스팅 z= 아스키코드5 return 0;}Colored by Color Scriptercs C++ 스타일 형변환1234567891011121314151617#includeusing namespace std;int main(){ int x=10; double y=static_cast(x); char z=static_cast(y); const int cn=100; int *pcn=const_c..
싱글톤 패턴(singleton pattern) 생성자가 여러차례 호출되더라도 실제로 생성되는 객체는 하나다. 최초의 생성자가 생성된 이후, 생성자는 최초의 객체를 리턴한다. 더 자세한건 pdf로 확인바람! #include #include #include using namespace std; class Singleton{ public: static Singleton* getInstance(){ if(mInstance == nullptr){ std::lock_guard guard(mtx); if(mInstance == nullptr){ mInstance = new Singleton(); } } return mInstance; } void add(){ data++; } int getData() const { ..
ID:succubusPW:here to stay checking &strcpy(0x8048410) strcpy have two parameter.(dest,src) strcpy's ret is "AAAA"So change ebp+48 address. using strcpydest is ebp+48. src is excuting shell address. put on buffer or argv[1] or anywere payload buffer(libc_system+system's ret+&/bin/sh+"\x90"*32+&strcpy+"AAAA"(fixed)+&(ebp+48 - AAAA)+&buffer&ebp+48 change to buffer's address.eip excute system("/bin..