Python
-
[파이썬] Beautifulsoup 를 이용한 웹페이지 스크래핑#파이썬 2020. 3. 25. 19:54
수정일 : 2020-11-23 각종 웹에 일반적으로 크롤러라고 소개되어있으나 PyPi의 Beautifulsoup 프로젝트를 보면 분명 " Beautiful Soup is a library that makes it easy to scrape information from web pages." 로 소개되어 있습니다. 물론 bs 도구를 활용해서 크롤러를 만들어볼 순 있을 것 같습니다. 하지만 이 글에서는 크롤링과 관련된 내용은 없으며 스크래핑하는 것에 대해서만 다룹니다. 더불어 크롤링(Crawling)는 일반적으로 검색엔진에서 사용되는 웹에 있는 문서들을 추적하는 기술입니다. URL이 주어지면 이 URL에 포함된 혹은 관련된 하이퍼링크들을 재귀적으로 탐색해서 많은 웹문서들을 (효율적으로) 탐색하고 필요한 데이..
-
[파이썬] 파일 raw data 읽고, 수정하기#파이썬 2020. 3. 7. 02:57
어떤 파일이든 바이너리를 분석할 때, 파일의 raw data를 읽고, 수정해야할 경우가 종종 발생한다. 파이썬에서 파일을 raw data로 불러와서 원하는 부분의 값을 수정하는 방법을 간단하게 메모한다. with open('/path/to/file','rb') as file: raw = bytearray(file.read()) raw[0] = 0xff raw[1] = 0xff raw[2] = 0xff raw[3] = 0xff with open('/path/to/file','wb') as file: file.write(raw) with .. as 구문은 해당 block이 끝나면 자동으로 open 했던 파일을 close 해주기 때문에 편리하게 사용할 수 있다. 'rb' 모드로 open할 경우, 파일을 raw..
-
pwntools gdb.attach 사용법 - python process debugging# 시스템 해킹 공부중 2019. 8. 5. 21:08
gdb.attach 사용법 wargame이나 ctf 문제를 풀 때, 혹은 바이너리를 분석 할 때 파이썬으로 데이터를 입력하는 경우가 자주있다. example> p = process("binary") p.sendline("AAAA") 이 때 내가 입력한 데이터가 원하는데로 바이너리에 잘 입력이 되었는지, 스택은 잘 덮혔는지 확인하기 위해서 gdb를 사용해 디버깅을 할 수 있다. 보통은 다음과 같이 코드 내에 raw_input()을 넣어서 실행을 잠시 멈춘 다음, gdb로 실행된 binary의 pid 로 붙어서 디버깅을 한다. example> p = process("binary") raw_input("1") p.sendine("AAAA") $ ps -ef ..... 4111 ... binary $ gdb -..