본문 바로가기

반응형

분류 전체보기

[CodeEngn]코드엔진 basic RCE L12 문제: Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오 Ex) 7777777???????? 일단 Key를 구해야 한다. Ollydbg를 열어보니 이러한 함수가 보임을 확인했다. 일단 문자열을 확인한다.(Search for- ~strings) 들어가보니 정말 긴 문자열과 밑에 축하한다는 것이 보인다. 일단 축하한다는 곳으로 가본다. 맞다는 부분이 00401084이다. 이 부분으로 이동하라는 명령어가 있는지 확인해보도록 한다. 그런 명령어는 딱히 없는 듯 하다. 그럼 .. 더보기
[CodeEngn]코드엔진 basic RCE L11 문제: OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000 OEP와 Stolenbyte를 찾는 문제이다. Ollydbg를 열면 PUSHAD가 되어있고, 밑에 NOP으로 채워져있는 것을 확인할 수 있다. NOP에 Stolenbyte가 있을 듯 하다. Ctrl+F를 통해 POPAD를 찾아보도록 한다. POPAD를 검색해보니 이 밑 부분이 NOP에 채워질 듯 하다. 일단 이 부분을 breakpoint로 해주었다. 이 부분까지 와보니, 아까는 없었던 문자열이 보인다. 윗부분에서 계속 F8을 눌러보니 이 부분으로 왔다. OEP는 004.. 더보기
[백준알고리즘]1932번 정수삼각형 파이썬Python h3h3문제 맨 위층부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다. h3h3입출력 h3h3입력 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. h3h3출력 첫째 줄에 합이 최대가 되는 경로에 있는 수의 합을 출력한다. 예시를 보면 알겠지만, 먼저 몇줄을 쓸건지 수를 입력 받는다. 입력받은 수만큼 삼각.. 더보기
[백준알고리즘]11399번 ATM 파이썬, c++ 문제 ATM에 대한 문제이다. 요약해보면, 1개의 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 줄을 서 있는 사람의 수 N과 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어졌을 때, 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하라는 문제인 것이다. 입력 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값.. 더보기
webhacking.kr(old) 7번 Admin page라고 한다. Auth를 눌러보니 access denied라고 한다. 소스를 확인해보면 GET방식으로 받은 값을 go에 저장하고 preg match를 통해 '2', '+', '=', 'from' 등이 필터링됨을 확인할 수 있다. rand를 통해 계속 어떤 작업을 하는 듯 하고, 마지막에 data[0]의 값이 2이면 풀리는 문제인 듯 하다. go 의 값에 2라는 값을 넣어주어서 lv를 2로 만들어주면 풀릴 것 같다. 근데 필터링되는 게 꽤 있어서, 어떻게 2를 표현할 것인지 고민해야 한다. 2도 필터링되고 마지막 주석문(#)에 문제가 있는 듯 했다. 그래서 val에 아무값이나 넣고, union과 select문을 통해 문제를 풀었다. 2는 ASCII값으로 50이기 때문에 char(50)을 사.. 더보기
[CodeEngn]코드엔진 basic RCE L06 Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD 패킹여부까지 알려주다니 너무 친절한 문제이다. 6번 언패킹하면 된다. 6번을 실행하면 이러한 화면이다. Strings를 사용할까 하였으나, 그냥 5번처럼 ollydbg를 사용하도록 한다. ollydbg를 실행하자마자 Search for - All referenced text strings를 봤다. Good Job이 있는 것을 보니, 보이는 문자열을 넣어 문제를 풀어보도록 한다. 여기에 답을 넣어보고 Check Serial을 하면, 알아낸 값이 맞는지 확인할 수 있다. -끝- 더보기
[CodeEngn]코드엔진 basic RCE L08 문제: OEP를 구하시오 Ex) 00400000 일단 PEiD를 확인해봤는데, 패킹되어있음을 확인할 수 있다. 따라서, unpacking을 해주었다. 시작되는 곳이 OEP임을 알 수 있다. 끝 더보기
[CodeEngn]코드엔진 basic RCE L07 문제: 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 시리얼을 비교하는 것이므로, ollydbg를 사용하면 될 듯 하다. ollydbg에서 문자열을 확인함으로써 문제를 풀 수 있을 듯 하다. 근데 주어진 문자열을 다 넣어봤는데도 풀리지 않았다. 그래서 일단 특정한 문자열로 이동해보았다. Well Done이 나오려면 00401117로 이동하도록 해야한다는 것을 확인했다. 그러려면 EAX와 0이 같아야 한다. 일단 serial을 입력하는 칸에 아무거나 넣어보도록 한다. 나는 그냥 1004를 넣어봤다. 근데, String1이 달라졌음을 확인했다. 이제 시리얼넘버에 무엇을 넣어야 둘이 같아지는지는 유추해낼 수 있다. String1을 넣으면 되는.. 더보기

반응형