카테고리
-
[파이썬] 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..
-
[리버싱] lighthouse + DynamoRIO - 프로그램 실행 흐름 확인# 시스템 해킹 공부중 2020. 2. 26. 22:19
프로그램을 리버싱할 때, 프로그램이 어떤 block 들을 거쳐서 실행되는지 그 실행 흐름을 확인할 수 있고 그 흐름이 일정하다면 리버싱할 때 좀 더 효율적으로 할 수 있고, 분석의 정확도를 높일 수 있다. 이 때 사용할 수 있는 유용한 플러그인과 도구가 있어 간단하게 기록한다. 1. DynamoRIO DynamoRIO는 DBI(Dynamic Binary Instrumentation) Framework중 하나로, 프로세스에 동적으로 명령어를 삽입해서, 정보를 얻거나 특정 행위를 할 수 있도록 하는 시스템이다. 다운로드는 아래 링크를 통해서, 실행환경에 맞는 버전을 받아서 압축을 해제하면 된다. https://github.com/DynamoRIO/dynamorio/wiki/Downloads DynamoRIO..
-
[안드로이드] 안드로이드용 Radamsa 빌드하기# 시스템 해킹 공부중 2020. 2. 19. 03:08
Radamsa는 [그림 1]과 같이 입력이 들어오면, 입력에 대한 적절한 Mutation 값을 출력시키는 간단해 보이지만 강력한 퍼저이다. 퍼저 자체로 타겟 프로그램에 입력을 넣거나, 크래시 모니터링을 하지않기 때문에 해당 드라이버 프로그램을 만들어줘야하는 번거로움이 있지만, 다양하게 퍼저를 적용해서 테스팅을 해볼 수 있다는 장점이 있다. 공식적으로 radamsa는 GNU/Linux OpenBSD FreeBSD Mac OS X Windows (using Cygwin) 해당 OS만 지원을 하고 있으며, 자세한 내용은 아래 공식페이지에서 확인하면 된다. 공식 gitlab : https://gitlab.com/akihe/radamsa Aki Helin / radamsa a general-purpose fuzz..
-
[안드로이드] ApkStudio로 앱 디컴파일&리패키징하기# 시스템 해킹 공부중 2020. 2. 16. 00:45
안드로이드와 같이 VM(Virtual Machine)환경에서 동작되는 프로그램들은 디컴파일(Decompile)이 비교적 용이하다는 특징이있다. 소스코드를 컴파일 할 때, C/C++ 과 같이 바로 기계어로 번역되는게 아니라, VM이 이해할 수 있는 바이트코드(Bytecode)로 컴파일이 되고, VM에서 실행될 때 내부에 있는 컴파일러로 한번 더 컴파일해서 기계어로 번역하게된다. 즉, VM내부에서 한번 더 컴파일이 되어야하기 때문에 소스코드에 있는 각종 심볼들이 바이트코드에 담기게 되고, 이를 활용하면 원시코드를 쉽게 유추할 수 있게된다. 자바를 이용해서 안드로이드 앱을 개발할 경우, 컴파일하면 *.java -> *.class -> *.dex 순으로 컴파일된다. 본래 class 파일은 JVM(Java Vir..
-
[안드로이드] 안드로이드 앱 실시간 패킷 캡쳐 및 분석 with mitmproxy, Wireshark# 시스템 해킹 공부중 2019. 10. 9. 20:21
안드로이드 앱에서 발생하는 패킷을 분석하는 방법은 다양하다. [그림1]의 왼쪽부터 Packet Capture, Debug Proxy, tPacketCapture 라는 어플리케이션으로 안드로이드 어플리케이션에서 발생하는 패킷들을 캡쳐해서 보여준다. 이 외에도 다양한 앱과 도구들이 존재하고, 앱에 따라 안드로이드 기기의 루팅이 필요한 경우도 있고, 인터페이스나, 제공하는 데이터의 형태 역시 다르다. 다양한 도구와 그 소개를 보고싶다면 아래 링크를 타고 가면 확인할 수 있다. 7 Best Wireshark Alternatives for Android (Updated) 2019 7 Best Wireshark Alternatives for Android (Updated) 2019 Are you looking fo..
-
Docker 사용방법 - 1. 남이 만든 이미지 써보기카테고리 없음 2019. 10. 1. 00:36
이전글 : [Docker 소개 및 설치 방법] Docker 소개 및 설치 방법 WARNING. 중간중간 길고 지루한 얘기가 포함되어 있을 수 있으니, 적당히 보고 이론같이 보이는 부분은 넘겨도 된다. 백문이 불여일견이라. 어차피 설치해서 직접 써보면 더 빠르고 쉽게 이해가 될 수도 있다. 그.. cosyp.tistory.com 이전 글 에서 도커(Docker)는 무엇인지, 간단한 개념과 원리에 대해서 알아보고, 설치방법에 대해서 다뤘다. 사실 뭐든 잘 모르겠어도, 설치해보고 냅다 써보면 대충 감이 오는 경우가 많으므로, 굳이 이해 안되는거 억지로 잡고 있는 것보다 그냥 써보는 것도 좋은 방법이다. 본 포스트는 Docker Toolbox 환경에서 썻지만, 도커 명령어 관련해서는 다른 환경에서도 같으니 똑같..