목록분류 전체보기 (370)
cgy12306
파일 다운로드 경로 : https://github.com/OWASP/owasp-mstg/tree/master/Crackmes/Android/Level_01 GitHub - OWASP/owasp-mstg: The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security testing an The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes the technical processes for verifying the con..
Nox Nox player 설치 https://github.com/OWASP/owasp-mstg 에서 파일들 다운로드 어플리케이션 취약점을 진단하기 위해 녹스 플레이어에서 ROOT를 켜줍니다. 설정저장 후 재부팅 해줍니다. dex2jar, jd-gui 안드로이드에서 사용하는 apk 파일은 파일들을 모아놓은 압축(패키지) 파일입니다. apk 파일을 zip 뷰어로 확인해보면 다양한 파일들을 볼 수 있습니다. META-INF : 암호화 서명 등의 설정 정보가 포함되어 있는 디렉토리입니다. res : 어플리케이션 측에서 레이아웃, 이미지 등을 사용하기 위해 저장되는 디렉토리입니다. AndroidManifest.xml : 안드로이드 빌드 도구, 안드로이드 운영체제 및 앱에 관한 필수 정보를 담고있는 파일입니다. ..
// https://www.acmicpc.net/problem/2636 // 치즈 #include #include #include #include using namespace std; int N, M, cnt = 0, time = 0; int map[102][102]; int visited[102][102]; int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,1,-1 }; queue q; vector cv; void bfs() { while (cnt) { memset(visited, 0, sizeof(visited)); visited[0][0] = true; q.push({ 0,0 }); cv.push_back(cnt); while (!q.empty()) { int x = q.f..
// https://www.acmicpc.net/problem/3055 // 탈출 #include #include #include using namespace std; int R, C; char map[52][52]; int visited[52][52]; int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,1,-1 }; int goalx, goaly; queue w; queue q; int bfs() { visited[q.front().first][q.front().second] = 1; while (!q.empty()) { int wSize = w.size(); for (int i = 0; i < wSize; i++) { int x = w.front().first; int y =..
// https://www.acmicpc.net/problem/2206 // 벽 부수고 이동하기 #include #include #include using namespace std; int N, M; int map[1002][1002]; int visited[1002][1002][2]; int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,1,-1 }; queue q; int bfs() { visited[1][1][1] = 1; q.push({{ 1,1 }, 1}); while (!q.empty()) { int x = q.front().first.first; int y = q.front().first.second; int b = q.front().second; q.pop(); if ..
홀수의 개수에 따라 결과 값이 정해져 있는 문제이다. 최선을 다한다고 하지만 최악의 경우로 갔을 때도 최선을 다했을 때와 결과는 일치한다. // https://www.acmicpc.net/problem/24678 // 돌무더기 게임 1 #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int T; cin >> T; while (T--) { int x, y, z, cnt = 0; cin >> x >> y >> z; if (x % 2) cnt++; if (y % 2) cnt++; if (z % 2) cnt++; if (cnt == 3)cout
겉에 물이 빠져나갈 수 있는 테두리를 하나 만들어주고, 이후 bfs를 돌려 한 칸씩 바깥의 물을 채워나감과 동시에 안쪽에 채워지지 않는 부분을 체크하여 높이를 구함 // https://www.acmicpc.net/problem/1113 // 수영장 만들기 #include #include #include using namespace std; int N, M; int map[52][52]; int Max = 0; int dx[] = { -1, 1, 0, 0 }; int dy[] = { 0, 0, -1, 1 }; int sum = 0; queue q; void bfs(int h) { map[0][0] = h; q.push({ 0, 0 }); while (!q.empty()) { int x = q.front()..
// https://www.acmicpc.net/problem/12852 // 1로 만들기 2 #include #include using namespace std; int dp[1000001], path[1000001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int X; cin >> X; dp[1] = 0; path[1] = -1; for (int i = 2; i dp[i / 2] + 1) { dp[i] = dp[i / 2] + 1; path[i] = i / 2; } if (i % 3 == 0 && dp[i] > dp[i / 3] + 1) { dp[i] = dp[i / 3] + 1; path[i] = i / 3;..