본문 바로가기

분류 전체보기

(137)
CodeEngn basic 18 18번 문제다. 이것도 Name이 CodeEngn일때, Serial을 찾는 문제다. 일단 실행시켜서 CodeEngn, 1111을 입력해보았다. 시리얼이 틀리댄다. 당연히 틀리지. 올리디에 던져서 스트링검색하면 이렇게 나온다.저기서 G0od 라는 스트링이 있는 곳으로 점프해보자. 한눈에봐도 lstrcmpiA 에서 내가 입력한 시리얼하고 비교하겠구나.. 라는 촉이 온다바로 브레이크포인트 설정하고 실행을 해보자. 역시나.. CodeEngn에 대한 시리얼과 내가 입력한 시리얼을 비교한다 입력해보자. 성공. 끝.
CodeEngn basic 17 17번 문제다. 키 값이 "BEDA-2F56-BC4F4368-8A71-870B"일 때Name을 찾으라고한다. 일단 실행시켜서 Name에 아무값이나 넣어주고Key값에 "BEDA-2F56-BC4F4368-8A71-870B"을 넣어주고 Check it! 더 입력하란다..? 분명 Name 1개의 문자나 숫자라했는데좀 이상하다 스트링 검색을 했더니 Well Done!이 보인다.Well Done! 부분으로 찾아가보자. 0045BB24부분을 보면 CMP EAX,3 이라고해서문자가 3개인지 비교한다. 좀 더 밑으로 내려가면 1E랑 비교해서문자의 최소 수, 최대 수를 비교한다. 그럼 최소 수를 바꿔주면 1개의 입력이 가능해진다. CMP EAX,1 로 패치해주고 실행시켜보자. 똑같이 값을 넣고 Check it!을 해봤지만..
CodeEngn basic 16 16번 문제다. 이것도 CodeEngn 일 때패스워드를 구하면 된다. 실행시키면 이렇게 이름을 입력하라고 먼저 나온다. 이름하고 패워스드를 입력했다.이름은 CodeEngn, 패스워드는 대충 1111이렇게 하고 인증을 시도해보았다. 당연히 틀린 패스워드랜다. 이제 올리디에 던져보자 중간에 Good Job!이 보인다. 저쪽으로 가면분명 함수내에서 비교하는 부분이 있겠지 실제로 있었다.CMP EAX, [EBP-3C]이 부분이 입력받은 값과 원 패스워드를 비교하는 부분이다.어느 함수 안에서 CodeEngn을 갖고 패스워드를 만들어 냈을것이다. 457과 E4C60D97을 비교한다. 457은 내가 입력한 1111이다. E4C60D97은 변환해보니 십진수로3838184855란다. 이게 패스워드겠지.. 맞다! 그게 패..
CodeEngn basic 15 15번이다. 실행시키고, CodeEngn 일때의 시리얼 값을 찾으라고 했으니까일단 입력하고 체크해본다. 다시 시도하란다.. 실행해서 천천히 살펴보다보면 스트링부분에 저런 문자열이 있다.아마 어떤 함수에서 이름으로 입력한 것에 대한 시리얼을 만들고,입력한 시리얼을 검사해서 비교하겠지.. 그래서 쭉 실행하다보면 마지막에6160과 457을 비교한다 여기서 457은 내가 입력한 1111이고 6160은 24928이라는데.. 아마 이게 시리얼 값 같아보였다.그래서 입력했다! 정답. 끝.
reversing kr CSHOP CSHOP이다. C#으로 작성되었다, 처음 실행하면 아무것도안나온다. 정말 아무것도.C#이어서 닷넷에 올려서 살펴보고 별 짓을 다해봤는데어떻게해도 찾을 수가 없었다.. 능력부족인가... 근데 엔터 땅 치면 나온다..도대체 뭐지...
reversing kr PE Password 문제를 받아 zip파일을 풀면 이렇게 두 프로그램이 나온다. Original.exe 를 실행시키면위 그림과 같이 메세지박스하나가 뜬다. 그리고 Packed.exe를 실행시키면Password를 체크한다.근데 이 박스안에 들어가는 패스워드를 찾는 문제는 아닌 것 같다. 어쨌든, 메시지박스에서 메시지를 받아오는것이므로SendMessageA 함수에 브레이크포인트를 걸고 실행시키면문자를 받아와서 어떤 한 함수를 실행시킨다.그리고나서 EAX와 E98F842A를 비교하고결과에 따라서 점프를 하는데, 저 점프문을 패치해주지않으면아무리해도 입력만 하게되는 불상사를 낳을 수 있다. 위에서 점프문을 잘 패치하고 내려오다보면 이 함수 루틴을 만난다.이 곳에서 바로 복호화를 진행해준다.루틴은 위 그림을 보면 알 수 있다. 결국..
reversing kr ransomware 주어진 zip파일을 풀면 이렇게 세개의 파일이 나온다. 일단 readme.txt 부터 열어보면파일을 Decrypt 하란다. 파일 종류는 exe인 것 같다. run.exe 을 실행하면 이런 화면이 뜬다.Key를 입력하면 그 Key를 가지고 Decrypt 하는건가보다.5천억을 진짜 입금할 순 없으니 살펴보자. 일단 이건 암호화 된 파일이다. 뭔지 하나도 모르겠다.. 대충 아무 값이나 넣고 진행을 해보자. 흔히 보던 모습이 모이는 것 같긴하다.. 올리디에 던져서 분석을 좀 진행해봤다.위 그림의 부분은 그렇게 중요하지는 않다.암호화된 파일을 하나씩 읽어오는 작업을 하는 부분이다. 이 부분이 진짜 중요한데, 읽어온 값하고 입력받은 키 값을 이용해서암호화된 파일을 복호화 시키는 것이다위의 코드를 대충 정리하자면복호..
reversing kr ImagePrc ImagePrc.exe 파일이다. 실행시키면 그림을 그릴 수 있다.아무그림이나 대충 그려보자. 당연히 틀렸다고 말한다. 문자열 검색을 해보니 Wrong 도 있고Button도 있고.. 일단 저쪽으로 가보자 무언가 15F90의 크기만큼 계속 비교한다.그림의 15F90 크기만큼 비교한 뒤에, 맞으면 Wrong을 출력하지 않는 프로그램이다. BitBlt는 프로그램내에 저장되있는 비트맵 이미지를 지정된 크기만큼 복사해서 윈도우의 지정된 좌표에다 그려라.라는 함수이다.한마디로, 여기 BitBlt 함수의 너비와 높이를 참고하면 프로그램에서 요구하는비트맵의 너비와 높이를 알 수 있다.너비는 C8(200), 높이는 96(150)이다.그래서 찾아가보면 정말로 15F90 크기 만큼의 데이터들이 파일 끝 부분에 붙어있다.이 ..