파이썬

AI

AI를 이용한 악성코드 탐지

AI를 이용한 정적 분석만으로 악성코드의 특징들을 찾아내어 동적 분석 없이 높은 탐지율로 악성코드를 추출해냈다. 학습에 사용한 데이터는 peframe으로 파일들의 특성을 추출하였으며, 데이터 전처리와 분석은 word2vec 모델을 사용하였다. 학습 모델은 LGBM 을 사용하였으며, 입력 벡터는 word2vec 모델을 사용하여 학습을 진행했다. 악성코드 탐지 및 특성 추출 방법 PEFrame을 통해 파일에 대한 데이터를 정적 분석하여 해당 파일의 특성들을 전부 추출하여 사용하였다 파일 하나당 한 개의 텍스트 파일에 정적 분석 데이터를 담았으며, 총 1만개의 텍스트 파일이 존재한다. PeFrame 분석 결과를 모델에 돌리기 위해서 단어 임베딩 방법론 중 하나인 Word2Vec을 활용하였다. 사용목적 1. 추..

Language/Coding Test

[프로그래머스 코딩테스트] 해시 - 전화번호 목록

def solution(phone_book): sort_book = sorted(phone_book) for i in range(len(sort_book)): b = len(sort_book[i]) for j in sort_book[i+1:]: if sort_book[i] == j[:b]: return False return True 채점 결과 정확성: 83.3 효율성: 8.3 합계: 91.7 / 100.0 요번에도 효율성에서 떨어졌다. (4개중 2개) 답을 배꼈다. 베스트 답안1) def new_solution(phone_book): phone_book = sorted(phone_book) for p1, p2 in zip(phone_book, phone_book[1:]): if p2.startswith..

Language/Coding Test

[프로그래머스 코딩테스트] 해시 - 완주하지 못한 선수

def mysolution(participant, completion): answer = '' if len(participant) != len(completion): for v in participant: if v in completion: completion.remove(v) pass else: answer = v return answer 채점 결과 정확성: 50.0 효율성: 0.0 합계: 50.0 / 100.0 안되서 답을 배낌 def solution(participant, completion): participant.sort() completion.sort() for p,c in zip(participant, completion): if p != c: print(p) return p return p..

Security/Reverse Engineering, RE

리눅스 환경 기반 스택 오버플로우 실습 (Trampoline Technique) -2

Return 주소 조작을 통한 스택 오버플로우 구현 절차 1. 예외를 발생 시키는 주입 지점 확인 2. 주입지점부터 Return Address 위치까지의 옵셋(거리)를 확인 3. 실행의 흐름 조작 가능 여부 확인 4. 간접 분기에 사용할 Register 확인 (전제 조건은 우리가 더럽힐 수 있는 스택을 포인팅 하고 있어야함) 5. 주입 지점부터 간접 분기에 사용할 레지스터가 가르키는 스택의 지점까지 거리 확인 6. Call Register 코드 확인 7. 익스플로잇 코드 제작 및 테스트 목표) 아래 소스코드로 컴파일된 실행파일의 스택 오버플로우 취약점을 찾고 쉘코드 실행 - bof.c #include #include #include void dovuln(const char *s) { char buf[10..

AI

[AI 문서 분류] AI를 이용한 문서 분류 프로그램 (최종)

최종적인 문서 및 파일 자동 분류 프로그램이 완성되었습니다. AI를 이용했다기 보단 필터링에 더 집중이 많이되었습니다 한국에서는 위와 같은 자동 분류 프로그램이 많이 없는걸로 알고 있는데 의미있게 코드들을 수정해주시면 감사하겠습니다. # 제목 기반 자동 분류 def title_classification(directory_list, file_list): result_dict = {} index_dict = {} origin_directory_list = directory_list.copy() origin_file_list = file_list.copy() # 첫번째 단계 : 데이터 전처리 (data preprocess) tmp_dir_list = data_preprocess(directory_list) t..

AI

[AI 문서 분류] 파이썬을 이용한 자모 단위 필터링

자모단위로 분류하는 알고리즘 구현 -정확도 낮음 jamo 모듈은 글자를 자모단위로 쪼개주는 역할을 한다 아 -> ㅇ + ㅏ 자소서 -> ㅈ + ㅏ + ㅅ + ㅗ + ㅅ + ㅓ 예를 들어 폴더명을 자소서라고 짓는다고 가정 파일이 자기소개서 일경우 당연히 자소서 폴더에 들어간다 하지만 서소자 파일인 경우에도 자모 단위로 쪼개면 ㅅ + ㅓ + ㅅ + ㅗ + ㅈ + ㅏ ㅈ + ㅏ + ㅅ + ㅗ + ㅅ + ㅓ 자모의 개수대로 비교한다면 자소서가 들어가고 해당 위치에 매칭되는 값이 다름을 비교하고 기준치를 자모 수의 50%로 지정한다면 ㅅ + ㅗ = 위치와 글자가 동일 하므로 2개가 같음 자모의 수 6개의 50%인 3개에 미치지 못해 적용을 안시킬 수 있다 하지만 필자는 해당 자모 필터링을 최하위에 둘 예정이라 단..

DevSecOps
'파이썬' 태그의 글 목록