전체 글 80

[Code Engn Challenge] Basic 11

문제를 읽어보면 OEP를 찾아야하는 문제이다. exe파일을 실행시켜보면 해독할 수 없는 문구가 출력된다.도움말을 눌러봐도 별 도움이 되지 않는다. 확인을 누르면 다음과 같이 파일을 찾아야한다고 뜬다.   OEP를 찾아야하니 PUSHAD와 POPAD를 찾아준다.PUSHAD를 찾았다. POPAD를 찾았다. stolen byte는 POPAD에서 JMP사이의 PUSH부분이다.6A 00 68 00 20 40 00 68 12 20 40 00또한 OEP는 프로그램 시작주소를 의미한다.00401000 위에서 찾은 숫자 둘을 합쳐준다.004010006A0068002040006812204000

카테고리 없음 2024.03.31

[Code Engn Challenge] Basic 10

문제를 보면 OEP와 OPCODE를 동시에 구해야하는 문제이다.   압축을 풀어준 뒤 DIE로 분석해보았다.ASPack을 다운받아야하는데 이뮤니티 디버거로 그냥 풀어보겠다. ASPACK을 언패킹하는 방법PUSHAD -> 압축해제 -> POPAD -> OEP    exe파일을 실행시키면 다음과 같이 뜬다.  RETN 0C로 이동해본다.POPAD를 찾기위해  RETN 0C 근처에 브레이크를 걸어주고 실행시켜본다. 아까는 없었던 값이 PUSH에 생긴다.여기서 445834가 OEP이다.   F7을 통해 들어가준 뒤 문장열을 쉽게 분석하기 위해Shift A를 눌러주면 다음과 같이 바뀐다.  성공을 했다고 뜨는 문자열을 쉽게 찾을 수 있다.   더블클릭을 해 이동을 하고 위 쪽으로 가 분기하는 지점을 찾는다.여기서..

카테고리 없음 2024.03.31

[Code Engn Challenge] Basic 9

문제를 읽어보면 stolenbyte를 구해야하는 문제이다.Stolenbyte가 뭔지 몰라 찾아보았다. Stolenbyte: 훔쳐진 바이트프로그램의 한 부분의 코드를 훔쳐내어 다른 부분으로 옮겨진 코드를 의미한다.POPAD-jmp OEP 사이의 연속된 push 부분을 뜻함   exe파일을 실행시켜보았다.키 파일을 찾아야겠다   위 설명에서 보았듯이 코드에서 PUSHAD와 POPAD를 찾아야한다.PUSHAD를 찾았다. POPAD도 찾았다.아까 stolen byte정의에서 POPAD와 JMP사이의 PUSH부분이 stolen byte라고 했으니 Stolenbyte는 POPAD와 JMP사이의 PUSH부분POPAD바로 아래에 있는 연속된 PUSH 3개가 정답이된다. PUSH부분을 보면  6A 00 68 00 20 ..

카테고리 없음 2024.03.31

[Code Engn Challenge] Basic 8

문제를 읽어보면 OEP를 구하는 문제이다.OEP가 뭔지 몰라서 찾아보았다.   OEP: original entry point로 원본코드가 먼저 실행되어야하는 entry point이다. (=프로그램의 시작주소)  upx로 압축을 하면 PUSHAD와 POPAD가 생성된다.PUSHAD실행 후 맨 위의 스택 주소로 이동해 브레이크 포인트를 지정한다.다시 실행하면 POPAD에서 멈추게 되는데 이때 JMP에 있는 주소가 OEP가 된다.   DIE로 보았을 때 upx로 해체를 해줘야한다.  실행을 시켜보면 계산기가 뜬다.여기서 아무값이나 입력해보았지만 아무 창도 뜨지 않았다.  아까 위에서 OEP는 프로그램의 시작 주소라고 했으니 위 주소가 정답이 된다.

카테고리 없음 2024.03.31

[Code Engn Challenge] Basic 7

문제를 읽어보면 컴퓨터의 c드라이브 이름을 코드엔진으로 바꾼 뒤 생기는 시리얼 넘버를 찾아야하는 문제이다.  문제를 풀어보기 전 exe파일을 실행시켜보았다.시리얼이 맞지 않다는 문구가 뜬다.   문제에 나와있는대로 c드라이브의 이름을 바꿔준다.  immunity debbuger를 실행시켜 코드를 본다.시리얼이 맞다라고 출력되는 문구를 찾았다이 주변을 잘 살펴보면 어떤 정보를 얻을 수 있을 것 같다. 에러가 출력되기 전에 브레이크를 걸어본다.  실행을 시킨 뒤 빈칸에 아무 문자나 적어주고 f8키로 천천히 내려가면 IstracatA에서 함수값이 계속 변화하는 걸 알 수 있다. 문구가 변하지 않을 때까지 계속 내려주면 다음과 같은 시리얼을 얻을 수 있다.   얻을 시리얼을 입력하면 정답이라고 뜬다.

카테고리 없음 2024.03.31

[JerseyCTF] PasswordManager

NICC에서 요구되는 엄청난 비밀번호 때문에, Mary Morse는 자신을 위해 비밀번호 관리자를 쓰기로 결정했습니다. 불행하게도, 그것이 당신이 비밀번호를 정확하게 알아맞혔는지 알려주는 전부입니다. 당신은 비밀번호를 해독할 수 있나요?  문제를 읽었을 때 비밀번호를 해독하면 플래그를 얻을 수 있는 문제이다.  힌트를 보았을 때 gdb를 이용해 비밀번호를 해독해야할 것 같다.   die로 해독해보면 elf64비트 파일로 따로 압축을 풀 필요는 없다.   IDA로 열어보았다.    이 부분을 보았을 때 비밀번호를 입력했을 때올바른 비밀번호일 경우 That's the password!가 뜨고틀릴 경우 That's not the password가 뜰 것이라 유추한다. if문을 기분으로 저렇게 두 개로 나뉘니 ..

카테고리 없음 2024.03.31

[JerseyCTF] Humble Beginnings

문제를 읽어보면 접근을 얻어야 플래그를 얻을 수 있는 문제같다. exe파일을 다운받고 실행해보았지만실행이 제대로 되지 않고 바로 화면이 꺼져버린다.    DIE를 이용해 해석해보았다. 64비트로 이루어져있고 압축은 따로 되어있지 않다.비주얼 스튜디오로 한번 열어보아야겠다.    비주얼 스튜디오를 통해 열어보면 헥사 문자가 뜨는데 여기서 정보를 얻기는 어려울 것 같다.   IDA를 통해 열어보아도 권한을 얻을 수 있는 코드는 보이지 않았다. immunity debugger로도 열어보았지만 64비트로 이루어져있어 열 수 없었다.권한을 얻기 위해 코드를 보고 싶었지만 보기 어려웠고,die를 분석해보면 비주얼 스튜디오를 통해 권한을 얻어플래그를 얻는 문제인 것 같은데 코드를 볼 수 없어 분석을 더 하기는 어려울..

카테고리 없음 2024.03.31

[CodeEngn Challenge] Basic 6

시리얼 코드를 찾아야하는 문제이다  문제를 실행시키고 아무 문자나 입력을 해보면 다음과 같이 틀린 시리얼이라고 뜬다   이뮤니티 디버거를 통해 열어본다자세히 보기 위해 search for을 해본다Good Job이라고 출력되어 있는 부분 위에 있는 문자열이 수상해 더블클릭해본다     그 아스키 코드를 입력한 뒤 확인을 누르면 정답이라고 나온다.

카테고리 없음 2024.03.24

[Code Engn Challenge] Basic 5

등록키를 찾아야하는 문제이다  프로그램을 실행시키면 다음과 같이 뜬다두 빈칸에 정답을 입력해야한다   이뮤니티 디버거를 통해 열어본다  코드를 자세히 보기 위해 search for을 한다아까 본 빈칸에 있는 문자열과 비슷해보여 더블클릭을 해본다 빈칸에 있는 것은 Unregistered…였는데 아스키 코드로 나와 있는 것은 Registered User이다  또한 GFX-754-IER-954가 빈칸에 나와 있던 것이랑 반대이다위 둘을 빈칸에 입력해준다  입력을 하면 문제를 성공할 수 있다

카테고리 없음 2024.03.24

드림핵 워게임- rev-basic-3

correct와 wrong이 출력되는 프로그램에서 correct가 출력되도록 해야한다.   파워쉘을 통해 열어본 뒤 아무값이나 입력하면 wrong이 뜬다.  IDA를 통해 연 뒤 코드를 전체적으로 확인한다.  correct가 출력되는 buffer를 더블클릭한다.  그러면 다음과 같이 뜬다헥스 값을 이용해 아스크코드를 확인한다.   확인한 부분을 넣어 코드를 짜준다  코드를 짠 뒤 출력을 하면 정닺^^

카테고리 없음 2024.03.24