본문 바로가기

반응형

분류 전체보기

[CodeEngn]코드엔진 basic RCE L05 이 프로그램의 등록키는 무엇인가? 파일을 HxD로 열어보면 UPX가 보인다. UPX를 통해 unpack을 해주어야 한다. unpacked되었음을 확인할 수 있다. 원래는 PEiD를 통해 패킹여부를 확인할 수 있다. 하지만 HxD에서 이미 패킹됨을 확인했으니, 이는 넘어가도록 한다. 이 문제는 등록키에 대한 문제이므로, 거의 100% string에 관한 문제일 것이다. strings를 이용해 풀어보려 했으나, 결과가 너무 많이 나와서 ollydbg를 사용하기로 했다. ollydbg를 통해 봤지만 그렇게 의미 있는 정보를 얻진 못했다. 때문에 오른쪽 버튼을 눌러 all referenced text strings를 확인한다. strings를 통해 문제를 풀 수 있음을 유추해낼 수 있다. 어떤 문자열이 있고, .. 더보기
[CodeEngn]코드엔진 basic RCE L04 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가? 3번과 마찬가지로 함수의 이름을 찾는 문제이다. dependency walker를 사용하여 문제를 풀어보도록 한다. 함수의 기능을 확인할 수 있다. 디버거를 탐지하는 함수의 이름을 유추하면서 문제를 풀면 된다. 끝 더보기
[CodeEngn]코드엔진 basic RCE L 03 Basic RCE L03을 풀어보도록 한다. 비주얼베이직에서 스트링 비교함수 이름은? 함수의 경우는 dependency walker 또는 CFF Explorer을 사용하는 게 편하다. 나는 dependency walker를 사용했다. Dependency walker의 함수를 확인할 수 있으니, 함수의 이름으로 스트링 비교함수를 생각해보면 된다. 끝 더보기
[백준알고리즘]14889번 스타트와 링크 c++ 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. Sij는 Sji와 다를 수도 있으며, i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이다. 축구를 재미있게 하기 위해서 스타트 팀의 능력치와 링크 팀의 능.. 더보기
[백준알고리즘]2750번 수 정렬하기 C++, Python 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. N개의 수가 주어졌을 때 오름차순으로 정렬하는 프로그램을 작성해야 한다. 5개를 입력하겠다고 처음으로 5를 입력한다. 5개의 수를 입력하고 N개의 수가 오름차순으로 정렬하는 프로그램이다. 이때 시간 복잡도가 O(n^2)인 정렬 알고리즘으로 풀 수 있다고 한다. 어떻게 풀어야 할 지 생각이 필요할 듯 하다. 중복은 없으니 좀 편할 듯 하다. https:.. 더보기
[CodeEngn]코드엔진 basic RCE Level 02 이번엔 2번을 풀어본다. 패스워드로 인증하는 실행파일이 손상되어 실행이 안 되는 문제가 생겼다. 패스워드가 무엇인지 분석하라고 한다. ollydbg로 실행해보았으나, 되지 않음을 확인했고 다른 프로그램을 사용해보기로 결심했다. PEview랑 HxD 중에 고민을 해봤는데, PEview는 하나하나 끊어져 있어서 그냥 HxD로 열어봤다. HxD를 통해 열어보았더니, MZ 즉 exe파일임은 확인했다. 내려서 뭔가 비밀번호가 될만한 문자열을 찾아보도록 한다. 유추되는 아이디를 찾고 문제풀이를 종료한다. 더보기
[백준알고리즘]14888번 연산자 끼워넣기 파이썬 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 진행해야 한다. 또, 나눗셈은 정수 나눗셈으로 몫만 취한다. 음수를 양수로 나눌 때는 C++14의 기준을 따른다. 즉, 양수로 바꾼 뒤 몫을 취하고, 그 몫을 음수로 바꾼 것과 같다. N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성하시오. 입출력 -> 입력 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어.. 더보기
[CodeEngn]코드엔진 Basic RCE Level01 Basic RCE Level01을 보도록 한다. HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가라고 묻고 있다. 파일을 우선 다운받아보고, 이를 ollydbg로 열어본다. ollydbg 사용법은 아래를 봐주면 된다.(x32dbg, x64dbg와 유사한 방식이기 때문에 아래를 봐도 무방하다) https://happylulurara.tistory.com/3?category=768326 일단 실행을 해보았다. 딱 봐도 'Nah... This is not a CD-ROM Drive!'라고 할 듯 하다. F8을 통해 프로그램을 실행해보도록 한다. 'Make me think your HD is a CD-Rom.'으로, HD를 CD-Rom으롤 만들어달라고 한다. .. 더보기

반응형