일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOF
- vtable
- C언어
- iptables
- 풀이
- Docker
- edge trigger
- ncurses
- LOB
- .nret core 배포
- 취약점
- epoll
- packet flow
- .net core 7
- REDIS
- epoll_wait
- wnourefresh
- level trigger
- NAPT
- Compiler
- doupdate
- rfc5508
- packet filter
- wrefresh
- architecture
- ioctl
- mvwin
- DOCKER-USER
- cbpf
- 어셈블리어
- Today
- Total
목록Computer Science (129)
Tuuna Computer Science
#include #include //원하는 문자가 입력될 때까지 입력받기 int main(void) { //malloc 프로토 타입 : void* malloc(size_t) int arrlen=10; //추가할 배열의 길이 char* arr = (char*)malloc(sizeof(char)*arrlen); //arr이 char형태로 10의 배열생성 (힙영역!) int idx=0; //배열원소를 부르기위한 변수 void* : 무슨 자료형을 할 것인가 while(1) { printf("input alphabet : "); scanf("%c", &arr[idx]); getchar(); //버퍼 지우기 if(arr[idx]=='q') //만약 입력한 문자중에 q가 있다면 break break; if(arrle..
https://dojang.io/mod/page/view.php?id=1148 즉, 모듈의 시작점을 의미한다.
[Reversing.kr] Easy_ELF 비밀번호 찾기 (리버싱) reversing.kr에서 받을 수 있는 쉬운 문제인 Easy_ELF를 풀어볼 것이다. 먼저 이 실행파일을 IDA로 디버깅해보자 main함수부분에 cmp eax, 1를 발견할 수 있다. 이는 eax값이 1이냐 아니냐의 차이로 1이면 sub_80484f7주소로 틀리면 Wrong을 내보낸다. syb_80484f7주소로 들어가보자 Correct를 내보낸다. 이제 본격적으로 비밀번호를 찾아보자 일단 eax의 값을 1이냐 0이냐로 세팅해주는 sub_8048451주소로 들어가보자 그 주소로 들어가보면 많은 XOR과 CMP를 볼 수 있다 일단 CMP주로 보자 첫번째로 볼것은 byte_804A021메모리주소에 들어있는 값을 eax에 넣은 다음 cmp ..
c 언어 배열 회전시키는 알고리즘. c 언어에서 배열을 90도 방향으로 회전시키는 소스코드이다. 자세한 설명은 주석을 참고 다음에는 달팽이 배열을 연습해야겠다.
c 언어에서는 난수를 생성할 수 있게하는 라이브러리를 제공한다. 자세한 설명은 위의 설명을 참고. 부연설명 -> srand((int)time(NULL)); //컴퓨터의 시간 인자를 int형을 변환하여 받아들인다. rand함수는 일정 값만 나오기때문에 매초 달라라지는 컴퓨터의 시간을 인자로 받아들여 새로운 값을 갱신할 필요가 있기 때문. (rand()%10) : 1~9까지의 수를 불러 들인다.
리눅스 크런치(Crunch)명령어로 사전파일을 만들어보자! 흔히 무차별 대입공격이라고 하는 브루트포스는 사전파일을 기반으로 실행된다. 그럼 이제 리눅스 명령어중에 하나인 크런치(Crunch)로 사전파일을 만들어보자. 일단 먼저 sudo권한을 이용해서 crunch를 설치하자 위 명령어는 crunch명령어의 기분 구조이다. : crunch (최소) (최대) (사용될 문자) -o (파일이름) 명령어 실행시 이렇게 만들어진다. 또한. 위 명령어를 실행할시 특히 0000@@@@는 앞에 0000을 무조건 끼고 다음 @@@@부분에 문자를 넣어라는 뜻이다. txt파일로 만들어서 안을 보자
[Reversing.kr ] Easy_Crackme! 비밀번호찾기(find password) Reversing.kr에서 받을 수 있는 초심 리버서 문제풀이용중 하나이다. 프로그램을 실행 시키면 일정값을 집어넣어야 하는 구간이 생긴다. 만일 값이 틀린다면 Inccorrect Password 라는 문구가 뜨게된다. 이제 본격적으로 이 프로그램의 비밀번호를 찾아보자! Ollydbg로 바이너리를 분석해본다. (IDA Pro는 그래프를보여주기때문에 매우 편리하다....) (하지만 아직 익숙하지 않으므로 패스...) 일단 먼저 serchfor string해서 문자열을 찾아보자 cingratulation이 보인다. 이 문자열이 있는 주소로 이동해보장 일단 cmp분기점이 있는 구간을 위주로 보기 쉽게 브리이크를 걸어보..
abex ' 2nd crackme:1 (시리얼 값 찾기) 윈도우 리버싱연습으로써 abex' 2nd crackme의 시리얼값을 알아보도록하자 일단 먼저 프로그램을 실행해보자. name값을 치는 공간과 serial값을 치는 구간이 있다. 틀린 값을 넣으면 틀렸다고 나온다. 메세지가 Worng serial이라고 나오는것을 보아 name값에 따라 serial값이 바뀐다는것을 어느정도 유추할 수 있을것이다. ( 물론 필자는 예측 실패) 이 파일을 Ollydbg로 까보자. 그럼 00401238주소에 EP가 형성된다. (entry point) 0040123D주소에 MSVBVM60를 호출하는 것을 발견할 수 있다. 이는 visual basic로 작성된것을 확인할 수 있다. 이 함수로 들어갈 필요는 없는데 만약 들어가면..
Hitcon Training LAB 1 gdb 사용하기 -> hitcon training lab1을 열면 sysmagic 바이너리파일과 sysmagic.c파일이 보인다. cat sysmagic.c 명령어로 sysmagic.c파일을 뜯어보면 사진의 C 코드로 구성되어 있다. 코드에서 보다싶이 if문(조건문)에서 password값과 사용자 입력값을 비교하고 있다. 이것을 gdb sysmagic 명령어로 디버깅해보자! 만약 중요 명령어 부분을 뚜렷이 보고싶다면 disassemble main(get_flag)대신 pd main(get_flag)를 쳐보자 중요한 부분에 색깔을 덮고 싶다면 ./pd main or get_flag를 get_flag()함수를 어셈블리어형태로 살펴보면 아까 c 코드로 보듯이 if문을 통..