본문 바로가기

[Python] Flask & Socket IO 웹 소켓을 이용한 채팅 Edit [Python] Flask & Socket IO 웹 소켓을 이용한 채팅 Socket IO Flask socketio 예전에 가가라이브인가? 웹에서 채팅을 할 수 있게 만들어주는 모듈이 있었는데, 이와 같은 웹 채팅을 한번 만들어보고 싶었다. 근데 가가라이브는 웹 기술이라기 보다 Flash 기반이더라… 그래서 다른 정보를 찾다보니 WebSocket 이라는 Socket.io가 있었고, 최근 Flask를 이용해 만들고 있는 웹이 있어, 간단하게 Flask에서 WebSocket 기반 채팅 프로그램을 만들어보기로 했다. Flask-Socketio는 링크에서 문서를 확인할 수 있다. 1. 설치 기본적인 웹 프레임워크인 Flask와 Gevent, flask_socketIO를 pip을 이용해 설치해야 한다. ..
[Python] gevent & monkey pathcing 처음엔 gevent를 이용해 spawn과 join만 이용하면 모든 task들이 Non-Blocking 형태로 진행되고, spawn & join을 쓰지 않고 monkey patching만 하면 raw_socket들이 모두 비동기 형식으로 진행되는줄 알았다.(gevent에 대해 안지 얼마 되지 않아서 개념에 대한 이해도가 부족했다) gevnet와 monkey patching을 이때까지 잘 사용해 왔는데 그럼 spawn & join 사용하는것과 monkey patching을 하는 것에 어떤 차이점이 있는지 생각을 하게 됐고, 이에 대해 여러 실험을 해보다 보니 잘못 이해하고 있었다는 것을 알 수 있었다. 결론을 먼저 적어보면, gevent는 단순하게 spawn & join만 사용하면 Non-Blocking이 ..
[Python] gevent & mechanize, asynchronous Scraping 간단하게 웹에서 데이터를 긁어올 일이 있어 mechanize를 이용해 로그인을 하고 데이터를 수집하려고 했으나 일반적인 방법으로는 속도가 너무 느려 gevent를 활용하여 개발하였다.(python에서 thread를 쓰는 것은 좋지 않은 방법이다) 1. Mechanize mechanize는 urllib, urllib2 혹은 requests 모듈과 같이 python에서 웹 요청을 보낼 수 있는 모듈이다. 다른 모듈과 다른 점은 가상으로 브라우저를 생성하여 웹 요청을 보내므로 cookie 혹은 session을 쉽게 다룰수 있고, select_form, submit 과 같은 함수들을 이용해 로그인을 할 수 있다.기본적인 mechanize 사용법Form 태그를 이용한 Login대략 이정도로 사용 가능합니다. 더 ..
node.js로 블로그 만들기 <<1>> 이때까지 C, C++, Python을 이용해 많은 코딩을 해 왔지만 웹 코딩은 안해봤습니다. 웹 특성상 코드 수정을 안해도 환경에 따라 결과가 다르게 나오는것과 같은 제 머리속 논리와는 다르게 나오는 문제 때문에 이때까지 정을 못 붙이고 있었지요... 근데 개발을 하다보니 역시 사람들에게 보여줄 수 있는건 웹이고 최근에는 웹을 통해 많은 것들을 할 수 있기 때문에 웹 공부를 하기로 했습니다. 그리고 JS도 공부해 볼겸 Node.js의 Express 엔진과 Jade, Mysql을 이용해 만들기로 하였습니다.(OS 환경은 제 맥북인 OSX 요세미티입니다)git은 동아리 서버를 사용하고 있고, 주소는 http://yobi.newheart.kr/yumere/NodeBlog 입니다. 1. Node.js Node...
소프트웨어 마에스트로 5기 후기 음... 나도 소마 5기 지원을 하고, 면접을 보기 전 인터넷을 통해 꽤나 중요한 팁들을 많이 얻을 수 있었기 때문에 블로그에 한번 글을 써보게 되었다. 일단 처음으로, 서류 통과 후 어떤 과정을 거치게 되는지 경험을 통해 설명해보면... 서류 통과 후 면접 인적성 검사 및 면접 일정이 잡힌다. 인적성 검사는 정말 별다른게 없다. 인성 검사에서는 그냥 내가 정상적인 사람인지 검사를 하는 것인데, 그냥 단순히 평소에 생각하던 것들로 체크하면 될 것 같다. 옛날 고등학교 때 했던 인성검사하고 비슷하다고 생각하면 될 듯 싶다. 그리고 시간이 좀 부족할 수도 있는데 모르는 건 그냥 공백으로 넣길 바란다... 그거 괜히 찍었다가 이상하게 나오거나 거짓 설문조사로 나오면... 어떻게 될 지 장담 못하겠다... 그리..
[Pwnable] 2013 HDCON 5번 luckyzzang exploit readellf를 통해 header를 확인하면 32-bit elf 파일이란 것을 확인 할 수 있다. hexray를 이용하여 소스들을 확인할 수 있다. main.cint __cdecl main(){ signed int v1; // [sp+2Ch] [bp-4h]@4 sockfd = socket(2, 1, 0); if ( sockfd == -1 ) { perror( "socket"); exit(1); } my_addr.sa_family = 2; *(_WORD *)&my_addr.sa_data[0] = htons(7777u); *(_DWORD *)&my_addr.sa_data[2] = 0; *(_DWORD *)&my_addr.sa_data[6] = 0; *(_DWORD *)&my_addr.sa_data[10] ..
[Pwnable] root-me.org/Hardened binary 1 Evernote Export root-me.org Hardened binary 1 문제 (*쉘 코드를 통해 바로 쉘을 띄울 경우 Segment falut를 출력하며 바로 띄우지 않고 다른 방법을 통해 쉘을 띄워야 공격이 성공한다) 파일을 IDA를 통해 열고 hexray를 실행 mainint __cdecl main(signed int a1, int a2){ int v2; // ecx@2 int result; // eax@9 int second_fgets; // [sp+2Ch] [bp-1024h]@5 int first_fgets; // [sp+30h] [bp-1020h]@5 FILE *fd; // [sp+34h] [bp-101Ch]@3 int buffer_4000; // [sp+38h] [bp-1018h]@..
[Python] Beautiful Soup과 smtp lib 이용해 게시판 파싱 & 메일 친구가 phpschool에서 알바 하는데 글 뜨면 자동으로 메일 오게 만드는 프로그램을 C#으로 만들었다고 하더라구요. 그래서 저도 심심해서 한번 python으로 만들어 봤습니다. __author__ = 'yumere' from bs4 import BeautifulSoup import urllib import time import smtplib from email.mime.text import MIMEText url = "http://phpschool.com/gnuboard4" tmp = raw_input("List NO:") NO=int(tmp) username = "yumere7833@gmail.com" passwd = "****" HOST = 'smtp.gmail.com' me = 'yumere78..