[ ★ ]Study195 [Toddler's Bottle] pwnable.kr leg 풀이 12345678910111213141516171819202122232425262728293031323334353637#include #include int key1() { asm("mov r3, pc\n");}int key2() { asm( "push {r6}\n" "add r6, pc, $1\n" "bx r6\n" ".code 16\n" "mov r3, pc\n" "add r3, $0x4\n" "push {r3}\n" "pop {pc}\n" ".code 32\n" "pop {r6}\n" );}int key3() { asm("mov r3, lr\n");}int main() { int key=0; printf("Daddy has very strong arm! : "); scanf("%d", &key); i.. 2017. 9. 15. fatal error: sys/cdefs.h: No such file or directory 해결법 sudo apt-get install g++-multilib libc6-dev-i386 2017. 9. 15. [Toddler's Bottle] pwnable.kr input 풀이 아래는 input.c 의 코드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include #include #include #include #include int main(int argc, char* argv[], char* envp[]){ printf("Welcome to pwnable.kr\n"); printf("Let's see if you know how to give input to program\n"); printf("Just give me correct inputs then you will get the .. 2017. 9. 13. c언어 pipe 란 pipe() 프로세스는 메모리가 독립적으로 존재하기 때문에 메모리를 프로세스간 통신을 하는 것은 불가능하다. fork()를 이용하여 server 혹은 client 쪽에서 생성된 프로세스들은 프로그램내에서 프로세스끼리 데이터를 주고 받을 방법이 없다는 것을 뜻한다. 이에 대한 해결책이 'pipe()' 라는 함수를 사용하는 것인데, 이를 사용함에 따라 서로 독립된 프로세스들이 데이터를 주고 받을 수 있게 된다. pipe() 란 - 하나의 파이프 및 파이프에 대한 두 개의 파일 디스크립터가 생성 - 하나의 파이프를 프로세스들이 공유 #include int pipe(int fd[2]); 성공시 0, 실패시 -1 fd : 크기가 2인 int 형 배열을 요구 -fd[0] : 함수 호출 후 fd[0]에 데이터를 입력.. 2017. 9. 12. 480만 명 쓰는 크롬 확장 프로그램 8개, 악성 코드 감염됐다 악성 팝업, 스팸 메일, 광고 페이지 리디렉션 등 2차 피해 우려 커 공격자, 프로그램 개발자 피싱해 계정 탈취하고 악성 코드 삽입 [보안뉴스 오다인 기자] 크롬 확장 프로그램 8개가 악성 코드에 감염돼 약 480만 명의 사용자가 위험한 것으로 나타났다. 침해된 확장 프로그램을 사용한다고 해서 당장 큰 피해가 발생하는 건 아니지만 계속 사용할 경우 컴퓨터가 공격당할 가능성이 매우 높으므로 당장 삭제하는 것이 좋다. 크롬 확장 프로그램(Chrome Extension)은 사용자가 구글 크롬 브라우저를 더 편리하게 사용할 수 있도록 지원하는 프로그램이다. 이 프로그램은 크롬 웹 스토어에서 다운로드 받을 수 있는데 전 세계 약 480만 명이 사용하는 크롬 확장 프로그램 8개가 공격자에 의해 침해된 것으로 밝혀진.. 2017. 8. 22. [Toddler's Bottle] pwnable.kr random 풀이 간단한 소스코드네요. 어떤 랜덤값이 나오는지 확인하기 위해서 main+18부분에 break를 걸었습니다. +18부분에서 eax를 rbp-0x4에 값을 넣습니다. 즉, 브레이크를 걸고 레지스터를 확인하면 빠르겠죠 ? 아래 그림있습니다. 0x6b8b4567이라는 값이네요. 몇번을 확인해도 똑같은 값입니다. rand() 함수는 범위를 지정해주지 않으면 같은 값을 뽑아내기 때문이죠. 때문에 정말 랜덤값을 뽑고싶다면 srand를 사용하도록 합시다. xor의 원리에 따라서 key ^ random = 0xdeadbeef a b c a ^ b = c b ^ c = a rand ^ deadbeef = key rand = 0x6b8b4567 = 1804289383 c = 0xdeadbeef = 3735928559 3039.. 2017. 8. 17. 이전 1 ··· 12 13 14 15 16 17 18 ··· 33 다음