“Life is too short You need python”. Python 3 소스코드 아카이브.
들어가며 파이썬에서 MySQL 을 사용할 일이 있었다면 한번쯤 들어봤을 만한 PyMySQL 패키지입니다. DictCursor 등 아주 쉽고 사용자 친화적인 기능을 제공해줍니다. 이 글은 PyMySQL 패키지를 사용함에 있어 평문통신이 영 마음에 걸리는 분들을 위해 암호화 통신을 하는 법에 대해 다룹니다. 잘못된 내용이 있다면 알려주세요. PyMySQL 의 기본 설정 PyMySQL 을 이용, 별도의 설정 없이 접속한다면, 기본적으로 암호화…
Python Docker 메뉴얼 들어가며 내가 잠을 자는 동안에도 PC가 대신 일해주면 얼마나 좋을까요. 자동화는 향상된 삶의 질을 위해 꼭 필요한 부분입니다. 최근 진행중인 프로젝트에 다량의 최신 샘플이 필요한 일이 있었습니다. 정상/악성 모두 말이죠. 샘플의 필요갯수가 1000 단위가 넘다보니 이미 손으로 해결할 수 있는 영역을 벗어난 상태였습니다. 해결방안은 찾아보던 중 마침 VirusTotal Private API 가 있으니…
멀티프로세싱을 이용하면 멀티코어 CPU 상에서 성능을 드라마틱하게 향상시킬 수 있습니다. CentOS 7.5 의 C로 작성한 프로세스에서 동작하는 퍼포먼스 크리티컬한 파이썬 스크립트를 작성중에 있는데, 멀티 프로세스 처리를 C 언어에서 할 지, 파이썬 에서 할 지 고민하다 작성하게 됐습니다. 이 글은 pyton 2.7 을 기준으로 작성했습니다. 먼저 아래 코드를 보겠습니다. def md5_million_times(msg): md5 = hashlib.md5() for i…
리눅스와 윈도우의 폴더 구분자 파이썬은 플랫폼에 구애받지 않는 특성상 PATH 와 같은 OS 종속적인 요소를 표현할 때 주의해야 할 필요가 있습니다. 윈도우의 경우 폴더 구분자는 \ 이고 리눅스의 경우 / 를 사용하기에 더욱 그렇습니다. 그래서 보통, PATH 를 편집 할 일이 있을 때 filepath = mypath + ‘\\’ + ‘myfile.txt’ 나 filepath = mypath +…
요즘 python3 와 PyQt5 를 활용한 GUI 프로그래밍 할 일이 많이 있었습니다. GUI 프로그래밍은 레퍼런스를 잘 보고 복붙해서 하면 좋은데 PyQt5 는 적당한 예제를 찾기 힘든게 사실입니다. PyQt4 예제만 잔뜩 나오죠. 레퍼런스는 C++로만 제공되서 더욱 어렵게 느껴집니다. 이에 제가 자주 쓰는 예제코드들을 하나씩 올려두려 합니다. 누군가에겐 도움이 됐으면 좋겠습니다. QMessageBox 는 윈도우의 MessageBox 와 그…
OLE 파일을 파싱행주는 파이썬 소스코드입니다. 언제나 그렇지만 직접 만든 소스코드를 공개하는건 정말 부끄럽기 짝이 없는 일입니다. 하지만 누군가에겐 도움이 되길 바라며 이 글을 남깁니다. 가독성을 위해 어떠한 예외처리나 검증로직도 들어가 있지 않아 실제 악성 문서파일 등에 사용하기엔 무리가 있습니다. 중간에 잘못된 부분 등 미처 제가 챙기지 못한 점에 대한 피드백은 언제나 환영합니다. import struct import…
메모리 덤프 등에서 긁은 GUID 값을 그대로 검색하면 byte ordering 에 의해 원하는 결과가 나오지 않습니다. 그렇다고 0x10 이나 되는 GUID 를 손으로 수정하기도 눈알 빠지는 일이고요. little endian으로 저장된 GUID 를 검색하기 쉽게 big endian으로 변환해주는 파이썬 스크립트 입니다. 실행하고 명령창에 메모리에서 복사한 값을 붙여 넣는 식으로 동작합니다. GUID 구조체를 선언해두고 구조체에 이쁘게 값을…
IP 난독화 보안 연구원 Osanda Malith 가 작성한 IP주소 난독화 코드입니다. 원본은 여기 서 찾을 수 있습니다. 처음 이 코드를 접했을 때 이렇게도 접속이 되나? 싶었지만 네 실제로 되는군요. 기존에도 SOCK_ADDR 구조체를 직접 갖다 쓰는 악성코드는 정적으로 IP를 탐지할 방법이 없긴 했지만, 단순한 문자열임에도 IP로 인식된단 점에서 해커 입장에선 더 쓰기 편해진게 아닐까 합니다. C로…
파이썬으로 프로그램을 짜다 보면 파이썬다운 방식으로 구문을 쓰는게 참 재밌게 느껴진다. 실재로 pythonic way 란 키워드가 많이 노출되기도 하고, 파이썬다운 방식들은 일반적인 프로그래밍 언어와 달리 매우 인간의 언어와 비슷한다. 오늘은 리스트 내에 문자와 숫자가 혼재할 때 한번에 쉽게 바꾸는 파이썬다운 방식이 없을까 검색하다 찾은 방법을 기억해두기 위해 기록해둔다. oldnumbers = [111, 222, 333, ‘444’, ‘555’]…