전체 글

전체 글

    [Python] Zip파일 압축 해제(2)(비밀번호 포함)

    2022.09.17 - [개발💻/Python] - [Python] Zip파일 압축 해제(비밀번호 포함) [Python] Zip파일 압축 해제(비밀번호 포함) Python 모듈인 zipfile를 사용하여 간단하게 Zip 파일 압축해제 코드를 완성하였다. Import 디렉토리 및 파일명 탐색을 위해 os, 압축 Zip 파일을 다루기 위해 zipfile, 정확한 오류 위치 및 원인 파악을 bymalware.tistory.com 기존 Zip 파일 압축해제 코드를 블로그에 기록해두었으나 현재 코드가 정상적으로 작동되지 않는 경우도 존재하여 후속 글을 작성하게 되었다. Error 기존 코드를 이용하였을 때 "That compression method is not supported" 오류가 발생하는 경우도 존재한다...

    [Python] Selenium을 사용한 크롤링 제작(2)

    Selenium을 사용한 크롤링 제작(1) 기존 Selenium을 사용하여 만들었던 크롤링에는 치명적인 단점이 하나 존재하였다. 2022.09.07 - [개발💻/Python] - [Python] Selenium을 사용한 크롤링 제작(1) 기존 크롤링의 문제 기존 만들었던 크롤링은 중복 제거 로직이 존재하지 않아 같은 파일도 계속 다운로드되어 실질적으로 원하는 악성 APK 파일을 다운로드 할 수 없었기에 중복 제거 로직을 추가하기로 하였다. 중복 제거 로직 MD5 해시값 비교를 통해 중복 검사를 하기로 결정하여 List 로 선언 후 전체적인 코드를 구현하였다. 하지만, 매번 List가 초기화되어 이전에 다운로드 했던 APK의 MD5 해시값이 누적되는 것이 아니라 그 시점(코드를 돌릴 때)에만 중복제거가 이..

    [Android] APK 파일 구조 및 분석 개요

    [Android] APK 파일 구조 및 분석 개요

    APK 란? 안드로이드 앱의 확장자로 Android Package Kit 의 줄임말이다. 인증을 위한 서명이 포함되어 있으며 ZIP 파일 형식으로 압축되어 있다. Windows OS에서 exe 파일과 동일하다. APK 구조 APK 구조는 크게 6가지로 나눌 수 있다. 위의 그림과 같이 각 폴더 및 파일마다 주요 정보들이 담겨져 있다. 악성 APK 분석 시 EP 실제 악성 APK 분석을 하며 가장 어려웠던 것이 어디부터 분석을 시작해야 하는지 모르는 것이었다. 아무것도 모를 때 기본으로 돌아가기 위해 APK 구조부터 다시 공부하였고 AndroidManifest.xml 를 가장 우선적으로 확인해야 한다는 것을 알 수 있었다. 왜 AndroidManifest.xml 부터 분석해야할까?? 실제 악성 APK 파일..

    [Python] pymysql 을 통해 데이터 베이스 값(Tuple)을 List로 가져오는 법

    간단하게 크롤링 제작을 하며 데이터 베이스를 사용해 중복 제거를 할 계획이었으나 Mysql 데이터 베이스 내 데이터를 가져올 때 Tuple 형태로 가져와져 리스트화 하는데 어려움이 있었다...😓 cursor.execute("SELECT '원하는 칼럼 명' FROM 테이블 명'") target_list = [] temp = cursor.fetchall() for q in range(len(temp)): target_list.append(temp[q]) print(target_list) 위와 같은 방식으로 데이터 베이스 내 데이터를 가져온다면 쉽게 List에 넣을 수 있을 것이라고 생각하였으나 오류(TypeError tuple indices must be integers or slices not tuple)..

    [Python] Zip파일 압축 해제(1)(비밀번호 포함)

    Python 모듈인 zipfile를 사용하여 간단하게 Zip 파일 압축해제 코드를 완성하였다. Import 디렉토리 및 파일명 탐색을 위해 os, 압축 Zip 파일을 다루기 위해 zipfile, 정확한 오류 위치 및 원인 파악을 위한 traceback 라이브러리를 Import 하였다. import os import zipfile import traceback Code 가장 우선적으로 Zip 파일이 존재하는 경로가 옳은 경로인지 검사한다. 실제 존재하는 경로일 경우 해당 경로 내 존재하는 모든 파일을 리스트에 넣은 후 다시 Zip 파일만 분류하여 리스트에 대입한다. def Unzip_fun(path): if os.path(path): # 파일 목록 획득 file_list = os.listdir(path) ..

    [Python] Selenium 사용하기

    [Python] Selenium 사용하기

    왜 Selenuim을 사용하지?? 일반적으로 널리 알려진 BeautifulSoup 라이브러리를 사용해도 사이트의 다양한 정보를 추출할 수 있다. 하지만...BeautifulSoup에는 자바스크립트로 동적으로 생성된 정보는 가지고 올 수 없는 한계가 존재한다😭 Selenium을 사용할 경우 동적으로 만든 데이터 크롤링이 가능해지고 다양한 요소에 클릭과 같은 이벤트를 주는 것이 가능해진다! Import and Install Selenium은 다른 라이브러리와 동일하게 다음과 같은 명령어로 쉽게 설치할 수 있다. pip install selenium Import 주로 사용하는 Import 목록은 다음과 같다. import selenium from selenium import webdriver from sele..

    [Python] Selenium을 사용한 크롤링 제작(1)

    [Python] Selenium을 사용한 크롤링 제작(1)

    Install 일반적인 설치과정과 동일하게 "pip install selenium"을 사용하여 설치할 수 있다. Import import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By import time Code "봇이 아니라 사람이야"를 알려주기 위해 user_agent를 추가한 후 webdriver 객체를 생성한다. (webdriver를 동일 경로 내에 위치시켜 별도의 경로 지정 코드는 추가하지 않았다.) user_a..

    [백준] 2693번 N번째 큰 수

    https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net case_num = int(input()) for i in range(case_num): number = list(map(int, input().split())) number.sort() print(number[-3]) 처음에는 모든 입력을 다 받은 후 출력해야 하는 문제로 오해하여 어렵게 접근하였으나, 제대로 접근 방식을 이해한 후에는 쉽게 풀 수 있었다. 오류, 잘못된..

    PetYa

    보호되어 있는 글입니다.