서로 다른 두 변수의 값을 바꾸기 위해서 보통 'tmp'나 'swap'과 같은 이름의 임시 변수를 하나 더 선언한다. 하지만 이런 추가적인 변수 선언 없이도 XOR 연산이나, 연산자의 우선순위를 이용해 스왑이 가능하다. 1) XOR 연산 - 1a = 3, b = 7;a ^= b;b ^= a;a ^= b;printf("a = %d, b = %d", a, b); 2) XOR 연산 - 2a = 3, b = 7;a ^= b ^= a ^= b;printf("a = %d, b = %d", a, b); 3) 연산자의 우선순위a = 3, b = 7;b = (a+b)-(a=b);printf("a = %d, b = %d", a, b); 결과)a = 7, b = 3
C언어에서 패스워드값을 입력받으려 할 때 문자 대신 *표시가 나오도록 하는 코드입니다. #include int main(){char pass[10];int i = 0; /* Case 1while(1){pass[i]=getch();if(pass[i] != '\r'){printf("*");i++;}else{return 0;}*//* Case 2while(pass[i]=getch()!='\r') { printf("*");i++;}*/return 0;} 혹은 getch()를 이용하여 입력되는 문자열이 안 보이도록 코딩하는 방법도 있습니다.
Homepage : http://www.crummy.com/software/BeautifulSoup/ Download BeautifulSoup 4.3.2 설치 방법4.3.2.tar.gz 압축 풀기 후 bs4 폴더를 Python/Lib로 이동 한글 뷰티플수프 문서 : http://coreapython.hosting.paran.com/etc/beautifulsoup4.html(페이지삭제됨)영문 뷰티플수프 문서 : http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Codegate 2014 예선전 리버싱 200점 문제 dodoCrackme의 Writeup입니다. 우선 Exeinfo를 통해 파일의 정보를 봅니다. 파일은 64비트 환경의 리눅스 실행파일임을 알 수 있습니다. 파일 실행을 위해 64비트 리눅스를 설치했습니다. Ubuntu Install : ftp://ftp.kaist.ac.kr/ubuntu-cdimage/ubuntu-gnome/releases/13.04/release/ 리눅스에서 파일을 실행시켜봤습니다. 하드코딩된 패스워드를 찾아서 입력하면 풀릴 것 같네요. 리눅스 툴 중 strace를 통해 파일에서 사용하는 시스템콜 함수를 찾아봅니다. strace Joinc : http://www.joinc.co.kr/modules/moniwiki/wiki.php/ma..
Codegate 2014 예선전 포렌식 150점 문제 WeirdShark의 Writeup입니다. 다음과 같이 확장자가 제거된 파일을 다운 받았습니다. 우선 내용을 보기위해 EditPlus로 파일을 열어봅니다. 위 내용 중 Dumpcap 1.10.5와 패킷정보가 보이는 것으로 보아 패킷 파일임을 유추할 수 있으며, 사실 위 내용이 아니더라도 문제 이름이나 파일명을 봐도 유추가 가능합니다. 하지만 파일을 열려고 하니 다음과 같은 에러가 발생합니다. Total block의 길이가 패킷 데이터의 길이(4270407998 byte)보다 작다고 합니다. 오류 내용 중 pcapng라고 보이는 것으로 보아 pcap이 아닌 pcapng 파일이며 NetworkMiner로 열리지 않는 것을 확인했습니다. PCAP-NG 구조..
배치파일을 이용하면 여러 작업을 한 번에 해결할 수 있다. 하지만 프로그램을 실행할 때 단순히 경로만 넣어주는 것만으로는 두 실행파일을 동시에 실행할 수 없다. 이 경우 하나의 프로그램이 종료된 이후에 다음 작업이 진행된다. 이런 문제는 start 명령을 이용하면 해결할 수 있다. C:\Users\Administrator>start /? 지정한 프로그램이나 명령을 실행할 수 있도록 별도의 창을 시작합니다. START ["제목"] [/D 경로] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE ] [/AFFINITY ] [/WAIT] [/B] [명령/프..
C언어로 프로그램 작성 시 간혹 입력 버퍼에 남아있는 값들로 인해 코드가 꼬이는 경우가 발생합니다.대게 C언어 처음에 배우는 입력문인 scanf로 입력 받을 경우 이러한 현상이 발생하구요.입력문을 여러번 사용할 경우 다음 입력문에서 입력을 받지 못하고 그냥 넘어가는 현상도 입력 버퍼에 \n이 남아있어서 그렇습니다. 이 경우 입력 버퍼를 초기화시켜주는 작업이 필요한데 OS마다 이 방법이 다릅니다. 윈도우 환경fflush(stdin); 리눅스 환경__fpurge(stdin); 이런 현상도 방지하고 안전한 코딩을 위해 가능하면 scanf보다는 gets()를 사용하는 것을 추천합니다.
[C언어] 웹사이트로 접속 요청하는 C언어 소스 #include //#include 보다 이후에 선언되어야 한다.#pragma comment (lib, "wininet.lib")#define IP "210.124.110.197"#define PHP "/war/pwnbit/pwnbit1.php" //전역 변수 선언HINTERNET hInternet, hHttp;HINTERNET hReq;//전역 변수 선언 끝 //웹 페이지 접속함수 선언hInternet = InternetOpen("HttpTest", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);if(hInternet == NULL) return -1; hHttp = InternetConnect(hInternet,IP, ..
- Total
- Today
- Yesterday
- writeup
- BOF
- CODEGATE 2014
- 프로그래밍
- 파이썬
- 프로그래밍 언어
- 분석
- 티스토리
- 웨일브라우저
- hackerschool
- 스크립트
- exploit
- 해커스쿨
- python
- DNSOverHTTPS
- 사이버테러
- 문제풀이
- 자바스크립트
- 악성코드
- DoH
- Wargame
- 개발
- Sublime Text 2
- CK Exploit Kit
- 웹
- network
- FTZ
- www
- TISTORY
- CloudFlare
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |