https://daewonyoon.tistory.com/383 파이썬 xlrd.biffh.XLRDError: Excel xlsx file; not supported 파이썬으로 엑셀파일을 다루는 코드가 아래와 같은 에러메시지를 발생하며 돌아가지 않았다. 에러메시지로 구글링을 하여보니 xlrd 패키지 (엑셀파일 읽기에 사용되는 패키지) 가 이제는 xls 파 daewonyoon.tistory.com https://blog.naver.com/PostView.nhn?blogId=rising_n_falling&logNo=221622971970 Pandas - DataFrame에서 특정 행, 열 선택 안녕하세요. '라이징n폴링'입니다. 이번 글에서는 Python의 데이터 구조 중 하나인 DataFrame... blo..
티스토리를 1월에 시작하고, 어느새 시간이 흘러 8월이다. 1일 1포스팅의 다짐은 3개월밖에 못갔지만 그래도 작심3일로 안끝나고 작심 3개월이면 어느정도 노력했다고 생각한다...ㅋㅋ 중간에 취직을 하고나서 블로그를 거의 못봤었는데 일일 방문자 수가 거의 항상 1000명대를 유지하고 있어서 놀랐다. 처음 목표로 했던 수치가 1000명대였는데 달성해서 감격스럽다ㅠ_ㅠ 물론 다른사람에게는 아무런 숫자가 아닐 수도 있겠지만!!! 그나저나 아무래도 IT 블로그라서 그런지 평일과 주말의 방문자 수 차이가 정말 극명한 것 같다. 평일에는 아무래도 학교를 다니고 직장을 다니고 하면서 검색을 할 일이 많아서 그런지 1000명대를 유지하고 있는데 주말은 반토막도 안된다..ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 진짜 극명하다. 아래 그래프를 보..
악성코드 정보 MD5 ec0c543675374a0ee9a83a4d55ca1a6c 특징 hwp/EPS/코드인젝션/드로퍼/??? 다운로드 https://app.any.run/tasks/496f832b-fee2-4224-8b0e-bed22d171354/ 악성코드 상세분석 먼저, SSView를 사용해 악성 hwp 구조를 살펴보면 BinData 스토리지에 BIN0001.PS가 들어있다. BIN0001.PS를 스트림 형태로 저장한 다음 zlib 압축을 풀어주면, 아래와 같이 디코딩된 eps 코드를 볼 수 있다. 이전에 분석한 한글 악성코드와 형태가 매우 유사해, get 뒤에 있는 가 xor 키값임을 알 수 있었다. 이번 키길이는 16바이트이다. 16바이트 키값을 활용해 직접 파이썬 코드를 짜도 되지만, 여기서는 e..
악성코드 정보 md5 f61991864cc8d9a58aa573b5e6b3e3cc 악성코드 상세분석 형태를 확인해보면, 위에 EEU 변수에 난독화된 코드가 들어가 있고, 마지막에 JKL을 EXECUTE하는 형태이다. vbs 파일 분석은 처음이라, 이것저것 구글링해보면서 난독화 해제하는 법을 찾아봤는데 대략 아래와 같은 방법이 존재하는 것 같다. 1. 비쥬얼스튜디오에서 디버깅하면서 확인 2. 변수 출력 방법 (msgbox, Wscript.Echo, Alert 등) 2번의 경우 다른 VBScript 악성코드 분석시 사용해보고 여기에 추가해보는 것으로 하고, 해당 악성코드의 경우 그리 복잡해보이지는 않으므로 여기서는 2번을 사용해보도록 한다. msgbox로 확인 시, 길이의 한계가 있어서 그런지 끝까지 확인을 ..
바이트 문자열을 그대로 바이트배열로 변경하려면? 예를들어 '020b16011710' 문자열이 있다고 해보자. 이걸 \x02\x0b\x10\x01... 이렇게 바꾸고 싶은게 아니라 (hex(16)=\x10), 그대로 \x02\x0b\x16... 로 변경해 무언가 바이트 연산을 하고싶을 때가 있다. 020b16011710 -> \x02\x0b\x10\x01\x11\xa (X) 020b16011710 -> \x02\x0b\x16\x01\x17\x10 (O) 바이트 문자열을 bytearray로 변경한 후 연산 작업 수행하기 그러기 위해선 두글자씩 띄어준 후(이게 한바이트가 되겠지) 이걸 bytearray로 변경해주면 된다. 먼저 for문과 join을 사용해 두글자씩 띄어준다. 그럼 '02 0b 16 01 17 ..
악성코드 정보 MD5 f2e936ff1977d123809d167a2a51cdeb 특징 EPS/코드인젝션/드로퍼 다운로드 https://app.any.run/tasks/b4381901-3a3b-4055-8304-f0870a8d3c7c/ 악성코드 상세분석 먼저, SSView로 한글 구조를 살펴봤는데, BinData 스토리지 안에 BIN0003.eps가 있다. 한글 eps코드가 어떻게 악용되어 악성코드가 동작하게 되는지는 나중에 자세하게 공부해서 포스팅해보려 한다. eps, zlib 압축 해제 한글의 eps 코드는 zlib로 압축된 상태이므로 압축을 먼저 풀어주어야 한다. 원래는 HwpScan이라는 툴을 사용하면 decompress를 해주는 기능이 있었는데 해당 툴이 유료화가 되었다...ㅠㅠ 관련 포스팅 20..
한글 문서형 악성코드는 한글의 eps 취약점을 사용하는 경우가 많다. eps는 BinData 영역에 .eps 형태로 있는데 zlib로 압축되어 있는 상태이다. 한글 스토리지 뷰어? 툴중에 가장 많이 쓰이는게 아무래도 누리랩의 HwpScan인데 이게 유료화로 전환이 되었다. HwpScan을 사용하면 eps 부분에 대해 zlib 압축을 해제해주는 기능이 포함되어 있어 편한데 사용할 수 없게 되어 파이썬으로 수동 압축해제를 시도하게 됐다. 정말정말 간단한데 에러 해결에 시간이 좀 걸렸기 때문에 여기에 정리해 놓는다! eps stream 얻기 HwpScan 툴을 대신해, SSView 툴을 사용했다. BinData 영역 중 원하는 데이터 부분에 오른쪽 마우스를 클릭하면 'Save Stream' 기능이 있다. 한글..
문자열 두 글자씩 띄우기 어떤 값을 얻었는데, 다 붙어있어서 바이트 단위로 끊고 싶을 때가 있다. 꽤나 자주 사용하는 기능인데도 항상 새롭게 구글링을 했었기 때문에 이참에 여기 정리해 놓는다. f = open("C:\\Users\\leefo\\Downloads\\test.txt","r") txt = f.read() f.close() # 리스트 형태로 반환 re = [txt[i:i+2] for i in range(0, len(txt), 2)] print(re) # join 사용 re = ' '.join([txt[i:i+2] for i in range(0, len(txt), 2)]) print(re) f = open("C:\\Users\\leefo\\Downloads\\test_re.txt","w") f.w..
NCS 기반 개정된 실기 준비와 시험 후기가 쓸데없이 상세하니 읽기 힘드신 분들은 포스팅 맨 하단의 요약을 확인해주시기 바랍니다..ㅎㅎ 2020 정보처리기사, NCS 기반 개정 3회 실기 준비 NCS 기반 개정 필기 1,2회차를 합격하고 나서 실기 2회차를 봤어야 했는데 도저히 공부할 시간이 나지 않아서 패스하고 3회차를 준비했다. NCS 개정 전후 차이는 아래와 같은데 딱봐도 확연한 차이를 느낄 수 있다. 총 12과목으로 세분화되었기 때문에 하루에 1~2개 과목씩 보는 방식으로 하루에 3시간 정도씩 총 2주간 준비했다. 과목당 나름대로 정리한 요약본은 짬짬히 시간날 때마다 봤고, 시험 3일 전부터는 기출문제와 수제비 카페에 올라오는 데일리 문제를 풀었다. 개정전 1. 업무프로세스 실무응용 / 2. 데이..
프록시(Proxy) 서버란? 프록시 서버란 클라이언트가 자신을 거쳐 다른 네트워크에 접속할 수 있도록 중간에서 대리해주는 서버를 말한다. 서버와 클라이언트 사이에서 대리로 통신을 수행해주는 것을 프록시라고 하고 그 기능을 하는 서버를 프록시 서버라 부르게 되는 것이다. 즉, 프록시 서버는 서버와 클라이언트 사이에서 요청과 응답을 처리해주게 되는 것이다. 클라이언트에서 프록시 서버로 데이터 전송 프록시 서버에서 다시 웹 서버로 웹 요청 웹 서버에서 프록시 서버로 웹 응답 프록시 서버에서 클라이언트로 데이터 전송 버프스위트, 파로스, 피들러와 같은 웹 프록시 툴을 사용해본 사람이라면 아마 대부분 웹 요청이나 응답 값을 중간에 가로채기 위해서 사용했을 것이다. 해당 툴에서 사용하는 웹 프록시 서버 주소와 포트..
Webhacking.kr Challange old 3번 문제 풀이 Nonogram이라는 게임으로 시작하는 문제이다. 아래와 같이 블록을 선택하면 검정색으로 변하는 것을 확인할 수 있다. solved 버튼을 누르면 get 변수로 _1, _2, ... 값들이 넘어가는 것을 볼 수 있는데 첫번째 칸이 칠해졌으면 _1=1이되고 칠해지지 않았으면 _1=0 이 되는 방식이다. 처음에는 여기서 SQL 인젝션을 해야한다고 생각해서 URL 창에 인젝션을 계속 했는데 되지 않아서 그냥 게임을 풀어주었다. webhacking.kr/challenge/web-03/index.php?_1=1&_2=0&_3=1&_4=0&_5=0&_6=0&_7=0&_8=0&_9=0&_10=0&_11=0&_12=0&_13=0&_14=0&_15=0&_..
옛날에 webhacking.kr 정말 열심히 풀었던 기억이 난다. 오늘은 또 어떤 포스팅을 올려야 할지 고민하던 참에 생각나서 페이지를 들어가봤는데 기존의 운영진?이 사이트를 다른 사람에게 인수한 모양이다. 로그인도 안되고 비밀번호를 찾으려고 아무리 시도해도 인증 메일이 오지 않았다. 그렇다고 따로 컨택을 하기도 애매해서 어쩔 수 없이 새로 가입한 후 문제를 확인했다. 옛날에 사용하던 블로그에 올려놓은 풀이와 비교를 해보니 문제 순서가 변경된건지 전부 변경된건지 문제가 살짝살짝 다르다. 문제 풀이 방식은 동일한데 소스만 다른것도 있는 것 같고 정확한건 한문제씩 보면서 확인해봐야할 것 같다. 스멀스멀 시간나는대로 문제를 풀어가보기로 했다. Webhacking.kr Challenge old-01 문제 풀이 ..