전체 글 25

3주차_학습용 악성코드 정적분석

이번 주에 한 일syssecApp.apk 정적 분석_Jadx이용(아래 보고서 링크에서 확인할 수 있다.)https://www.exploit-db.com/docs/english/33093-introduction-to-android-malware-analysis.pdfMobsf 사용해보기(정적분석) 분석 준비버추얼 박스에서 우분투를 작동한 뒤, 저번 주에 깔았던 jadx-gui를 터미널에서 jadx를 입력해 실행시킨다.파일 열기 버튼을 눌러 syssecApp.apk를 열어준다. 열어주게 되면, 아래와 같은 파일구조가 보인다.정적 분석jadx-gui를 활용한 분석Resources 폴더 -> AndroidManifest.xml 내용AndroidManifest.xml 파일은 앱이 어떤 구성 요소로 이루어져 있고 ..

악성코드 2026.03.29

C++ (함수, 배열, 정렬, 객체)

- 함수원하는 기능들을 모아 하나의 도구처럼 사용할 수 있도록 해줌반환타입 함수명() { //코드 작성}형태는 다음과 같다. 함수명은 대문자로 시작해 의미 단위로 다시 대문자를 적어 구분해주는 파스칼 케이스를 따른다. 함수 실행 시에는 함수명(); 형태로 적어주어야 한다. > 인자를 포함하는 함수void Print(int n) { //코드}위의 예시와 같이 괄호 안에 인자의 타입과 변수명을 넣어준다. 함수에서 값을 반환하려면 return을 사용한다.int Add(int a, int b) { return a + b;}위의 예시와 같이 원하는 값을 return 뒤에 적으면 반환할 수 있다.함수는 return을 만나게 되면 내부의 모든 코드를 수행하지 못했더라도 즉시 종료된다. - Call By Value..

언어 2026.03.25

2주차_악성코드 분석 툴

이번 주에 한 일분석 관련 툴 설치, 환경 구축ubuntuJADX-GUIBytecode ViewerMobSFGenymotionADB FridaAndroid Studio함께 분석할 악성코드 조사syssecApp.apkDexterAnubis 우분투 환경 구축 / 툴 설치virtualbox로 진행하기로 했고, 이미 그 안에 우분투는 깔려있어서 분석 환경 설정만 변경해주면 됐다. 어댑터 1은 툴 설치를 위한 인터넷 연결을 위해 NAT 모드로 설정하고, 악성코드가 실제 인터넷으로 나가서 공격자의 서버와 통신하는 것을 막기 위해 어댑터 2를 호스트 전용 어댑터로 설정해주었다. 그리고 혹시 분석할 때 사용할 수도 있지않을까 싶어 Promiscuous Mode도 모두 허용으로 바꾸어 주었다. 메모리 8192MB , C..

악성코드 2026.03.23

1주차_capa 규칙

capa 규칙을 활용한 안드로이드 악성코드 탐지참고 링크: https://cloud.google.com/blog/ko/topics/threat-intelligence/capa-rules-android-malware-detection?hl=ko capa 규칙을 활용한 안드로이드 악성코드 탐지 | Google Cloud 블로그Android와 Mandiant는 안드로이드 악성코드에서 관찰되는 기능들을 탐지하기 위해 기존 capa 규칙을 개선하고 새로운 규칙을 개발했습니다.cloud.google.com 최근 공격자들은 악성코드 탐지를 어렵게 하기 위해 네이티브 코드를 사용하고나 심볼을 제거해 파일을 난독화 하는 등의 다양한 방법을 시도하고 있다. 이러한 문제에 대처하기 위해 Android 보안팀은 오픈 소스 ..

악성코드 2026.03.16

c++ 출력/변수/입력/연산자/조건문/반복문/배열/문자열

- 출력 ∘ 출력 시 cout 함수 사용 ∘ C++에서의 표준 함수들은 함수 앞에 std:: 를 붙여줘야 사용가능, 하지만 코드 상단에 using namespace std; 를 적어주면 매번 std:: 를 함수 앞에 적지 않아도 됨. ∘ cout 함수는 iostream 이라는 헤더를 코드 상단에 포함시켜야 사용가능 #include (콘솔에서의 입출 력 기능을 정의한 객체가 있음) > 특수문자 출력 해당 특수문자 앞에 \ 를 붙임 (\를 붙이면 특정 기능이 아닌 문자로 인식하게 됨) > 줄바꿈cout cout 둘 모두 한 줄을 띄우는 역할을 함. > string 자료형 이용하려면 string 헤더를 코드 상단에 포함시켜야 함. #include - 변수 >..

언어 2026.03.01

c++ 기본 (출력 ~ 2차원 배열 개념)

- 출력 cout cout - 변수: > 데이터를 저장할 수 있는 메모리 공간의 이름, 대입연산자(=)을 이용해 값을 초기화하거나 변경 > 변수의 종류int : 정수double : 실수bool : 불리언 (true/false)char : 문자 (문자 하나만 저장 가능) / 작은따옴표 사용string : 문자열 / 큰따옴표 사용- 자료형 > 특징int: 양수, 음수, 0 모두 표현 가능 / -2^32 이상 2^31-1 이하 범위의 정수 담을 수 있음double: 소수점 포함한 실수 저장, 큰 수의 범위 표현 가능, 오차 발생 가능성 O, 과학적 표기 가능과학적 표기법 예시 1) double e = 1.5e2; //1.5 * 10^2 = 150 (소수점 아래가 0이면 기본 출력에서는 보..

언어 2026.01.15

WebGoat A3, A5, A7

1. A3 SQL Injection (intro) 풀이처음 문제는 간단한 것을 물어본다. 위의 Employees Table에서 Bob Franco라는 직원의 부서를 가져오면 된다. 다음과 같이 간단한 sql 문을 작성해 employees 테이블에서 first name이 Bob인 사람의 department를 가져오니 성공했다. 다음 페이지로 넘어가니 DML 관련 설명이 있었다. DML (Data Manipulation Language)은 데이터 조작 언어로, 데이터베이스 안의 데이터를 조작(추가, 조회, 수정, 삭제) 하는 명령어이다.대표적인 DML 명령어는 다음과 같다.SELECT → 데이터 조회 | INSERT → 데이터 추가 | UPDATE → 데이터 수정 | DELETE → 데이터 삭제..

Web 2025.09.03

웹 기본 ~ CSRF

Building a Web Service1. 웹 기본상식웹- 웹은 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용해 정보를 공유하는 서비스- 웹 서버- 정보 제공 주체, 웹 클라이언트- 정보 받는 이용자- 웹 리소스란 웹에 갖춰진 정보 자산, 모든 웹 리소스는 고유의 URI를 가짐. 인코딩- 컴퓨터의 모든 데이터는 0과 1로 구성되는데 이 0과 1로 우리가 사용하는 문자를 표현함- 문자를 표현하는 약속들을 인코딩 표준이라고 부르는데, 대표적으로 아스키와 유니코드가 있음.- 초기에는 각 문자권마다 고유의 인코딩 표준을 사용해 영어: 아스키, 한글: CP-949, EUC-KR 등을 사용했지만 호환성 측면에서 어려움이 있어 하나의 표준으로 모든 언어의 문자를 표현하기 위해 유니코드가 만들어짐. HTTP(H..

Web 2025.07.16