Security ★ Development(154)
-
리버스엔지니어링 문제 Advance 10
http://codeengn.com/challenges/advance/10 Problem : Find the Name when the Serial is WWWCCCJJJRRR Hint 1 : Name is 4 letters Hint 2 : Among the multiple solutions, find the one that comes first in alphabnumeric order. 성공, 실패 문자열을 찾아보면 분기점을 발견할 수 있습니다. EBP-0A5와 0의 값을 비교함으로서 분기가 되는데 EBP-0A5는 바로 위 함수가 아니라여기서 마지막으로 건드리게 됩니다. 그럼 바로 위의 CALL을 살펴보겠습니다.리턴하는 부분입니다. EAX의 값을 거슬러 올라가다 보면 CMP EAX, 5를 거친 후 004..
2015.05.03 -
리버스엔지니어링 문제 Advance 9
http://codeengn.com/challenges/advance/09 Problem : What the Password 메인 루트에서 010713FF가 이름과 패스워드 모두 검사하는 부분입니다. 이 부분을 보도록합니다.이름이랑 패스워드를 놓고 진행하다보면 아래와 같은 부분이 있습니다. 1234가 입력한 이름입니다.그리고 위와 같은 부분을 통해 Username은 DonaldDuck이라는 것을 추측할 수 있습니다. 여기에서 EAX의 값을 보면 입력해준 패스워드라는 것을 알 수 있습니다. ECX 위치의 값은 10진수로 8921743인데 이 값이 패스워드라고 추측할 수 있습니다. 하지만 DonaldDuck, 8921743을 입력해주면 아니라는 메시지만 뜹니다. 저기 TEST BL, BL 아래에 JZ가 있는..
2015.05.02 -
리버스엔지니어링 문제 Advance 8
http://codeengn.com/challenges/advance/08 Problem : What is Name when the Key is 5D88-53B4-52A87D27-1D0D-5B09 Hint : The name is 2 letters and it could be either alphabetic or numeric. Verify your solution with the MD5 value of the Name(in CAPITALS). 문제에선 2글자라고 했는데 3글자 이상을 입력하지 않으면 Please Enter... 메시지가 뜹니다. 이 부분을 바꿔줍니다. 그리고 여기 CALL 부분을 지나면 key가 생성되므로 이부분을 중점적으로 봐줍니다. 위가 입력값으로 Key를 만드는 부분이고 아래가 k..
2015.05.01 -
리버스엔지니어링 문제 Advance 7
http://codeengn.com/challenges/advance/07Problem : When the Name is CodeEngn, the Serial is 28BF522F-A5BE61D1-XXXXXXXX. Find XXXXXXXX 이 문제는 x64와 x86에서의 답이 다릅니다. 문제에 있는 앞의 두 Serial값은 32에서의 값으로 64에서는 2B90746C-85690F59-XXXXXXXX로 놓고 풀어야합니다. Ollydbg로 열어보려했지만 열리지 않아 팩 상태를 봤는데 별다른 팩도 되어있지 않습니다. C#으로 되어있다고 하니 dotPeek을 써줍니다.코드가 깔끔하게 복원됩니다. 성공 메시지를 띄워주는 부분을 찾고 로직을 분석합니다. 눈으로 따라가기 어려우니 솔루션으로 export해서 디버깅해줍..
2015.04.27 -
리버스엔지니어링 문제 Advance 6
http://codeengn.com/challenges/advance/06Problem : How many more days to serve for the military The solution is the MD5 hash of the answer 프로그램을 실행해보면 1부터 숫자가 계속 올라갑니다. 종료하려면 작업관리자에서 프로세스 종료를 해야합니다.UPX와 안티디버깅을 우회해주고 문자열, 의심되는 함수들을 보지만 쉽게 눈에 띄는게 없습니다.이번문제는 상당히 코드를 유심히, 많이 보면서 풀었습니다. 이전 문제들처럼 코드의 흐름을 일일이 설명해드리기가 어렵네요. 일단 크게 메시지를 띄우는 부분과 카운트를 생성하는 부분으로 나눴는데 카운트는 저거 위의 CALL에서도 생성됩니다. 일단 이부분을 보면 Mess..
2015.04.19 -
리버스엔지니어링 문제 Advance 5
http://codeengn.com/challenges/advance/05Problem : Find the Serial 이번문제도 4번과 마찬가지로 쉽습니다. 함수를 찾다보면 비교함수인 vbaStrCmp를 볼 수 있습니다. bp를 걸어두고 진행합니다. 답이 아닐경우 Mal Cracker!!! 메시지가 뜹니다. 정답은 677345
2015.04.17