How to retrieve home directory path

리눅스와 윈도우의 폴더 구분자 파이썬은 플랫폼에 구애받지 않는 특성상 PATH 와 같은 OS 종속적인 요소를 표현할 때 주의해야 할 필요가 있습니다. 윈도우의 경우 폴더 구분자는 \ 이고 리눅스의 경우 / 를 사용하기에 더욱 그렇습니다. 그래서 보통, PATH 를 편집 할 일이 있을 때 filepath = mypath + ‘\\’ + ‘myfile.txt’ 나 filepath = mypath +…

QMessageBox 예제

요즘 python3 와 PyQt5 를 활용한 GUI 프로그래밍 할 일이 많이 있었습니다. GUI 프로그래밍은 레퍼런스를 잘 보고 복붙해서 하면 좋은데 PyQt5 는 적당한 예제를 찾기 힘든게 사실입니다. PyQt4 예제만 잔뜩 나오죠. 레퍼런스는 C++로만 제공되서 더욱 어렵게 느껴집니다. 이에 제가 자주 쓰는 예제코드들을 하나씩 올려두려 합니다. 누군가에겐 도움이 됐으면 좋겠습니다. QMessageBox 는 윈도우의 MessageBox 와 그…

OLE Parser

OLE 파일을 파싱행주는 파이썬 소스코드입니다. 언제나 그렇지만 직접 만든 소스코드를 공개하는건 정말 부끄럽기 짝이 없는 일입니다. 하지만 누군가에겐 도움이 되길 바라며 이 글을 남깁니다. 가독성을 위해 어떠한 예외처리나 검증로직도 들어가 있지 않아 실제 악성 문서파일 등에 사용하기엔 무리가 있습니다. 중간에 잘못된 부분 등 미처 제가 챙기지 못한 점에 대한 피드백은 언제나 환영합니다. import struct import…

GUID 변환 스크립트

메모리 덤프 등에서 긁은 GUID 값을 그대로 검색하면 byte ordering 에 의해 원하는 결과가 나오지 않습니다. 그렇다고 0x10 이나 되는 GUID 를 손으로 수정하기도 눈알 빠지는 일이고요. little endian으로 저장된 GUID 를 검색하기 쉽게 big endian으로 변환해주는 파이썬 스크립트 입니다. 실행하고 명령창에 메모리에서 복사한 값을 붙여 넣는 식으로 동작합니다. GUID 구조체를 선언해두고 구조체에 이쁘게 값을…

IP Opfuscate

IP 난독화 보안 연구원 Osanda Malith 가 작성한 IP주소 난독화 코드입니다. 원본은 여기 서 찾을 수 있습니다. 처음 이 코드를 접했을 때 이렇게도 접속이 되나? 싶었지만 네 실제로 되는군요. 기존에도 SOCK_ADDR 구조체를 직접 갖다 쓰는 악성코드는 정적으로 IP를 탐지할 방법이 없긴 했지만, 단순한 문자열임에도 IP로 인식된단 점에서 해커 입장에선 더 쓰기 편해진게 아닐까 합니다. C로…

Pythonic way to convert strings numbers to integers in a list

파이썬으로 프로그램을 짜다 보면 파이썬다운 방식으로 구문을 쓰는게 참 재밌게 느껴진다. 실재로 pythonic way 란 키워드가 많이 노출되기도 하고, 파이썬다운 방식들은 일반적인 프로그래밍 언어와 달리 매우 인간의 언어와 비슷한다. 오늘은 리스트 내에 문자와 숫자가 혼재할 때 한번에 쉽게 바꾸는 파이썬다운 방식이 없을까 검색하다 찾은 방법을 기억해두기 위해 기록해둔다. oldnumbers = [111, 222, 333, ‘444’, ‘555’]…