Security ★ Development(154)
-
리버스엔지니어링 문제 18
http://codeengn.com/challenges/basic/18 시리얼을 구하는 문제입니다.16번과 동일합니다.성공문자열이 있는 곳으로 가서 조건문을 보고 넣어준 값과 정답값을 확인해보면 됩니다.넣어준 값은 123123이고 정답은 String2에 들어있습니다.
2015.04.05 -
리버스엔지니어링 문제 17
http://codeengn.com/challenges/basic/17 이번엔 키값이 주어졌을 때 네임을 구하는 문제입니다. 정답은 네임의 해시값Name이 한자리라는데 한글자를 집어넣으면 더 입력하라고합니다. 해당 문자열이 있는 곳으로 가보면 CMP EAX, 3을 해주고 점프를 합니다. 여기서 3이 문자열의 길이라는 것을 추측할 수 있고 실제로도 3글자 이상일 때 메시지를 보여주지 않습니다. 3을 1로 바꿔주고 Name에 하나씩 대입해 봅니다. 그럼 F일 때 Good Boy를 출력합니다.답은 F의 MD5 해시값입니다. 800618943025315f869e4e1f09471012
2015.04.05 -
리버스엔지니어링 문제 16
http://codeengn.com/challenges/basic/16 15번에 이어 이번에도 시리얼을 구하는 문제입니다.풀이방법은 같습니다.분기점으로 간 후 비교하는 레지스터의 값을 확인하면 됩니다.
2015.04.04 -
리버스엔지니어링 문제 15
http://codeengn.com/challenges/basic/15 14번에 이어 이번에도 시리얼을 구하는 문제입니다.성공 문자열, 분기점이 있는 곳으로 갑니다.CMP를 통해 EAX와 45B844위치의 값을 비교하고 있습니다. EAX에는 두번째 텍스트박스에 넣어준 값이 들어있으므로 45B844위치의 값이 키값입니다. CodeEngn을 넣었을 때 해당값은 24928이라고하네요.
2015.04.04 -
리버스엔지니어링 문제 14
http://codeengn.com/challenges/basic/14 네임이 CodeEngn일 때 Serial을 구하라고 합니다.답은 쉽게 찾을 수 있습니다.비교 구문에서 EAX와 ESI를 비교해주는데 키는 ESI에 들어있고 사용자가 2번째 에디트박스에 입력한 값은 EAX에 들어있습니다. ESI는 129A1로 10진수로 76193이며 이 값이 키가 됩니다.
2015.04.04 -
리버스엔지니어링 문제 13
http://codeengn.com/challenges/basic/13 패스워드를 찾는건데 Ollydbg로 열리지 않습니다. PEiD를 보면 닷넷으로 되어있다고하네요.dotpeek을 이용해서 디컴파일 합니다.암호문, salt값이 보이고 암호화, 복호화 알고리즘이 보입니다. 여기선 평문키를 구할 수 없을 것 같습니다. 암호문을 복호화 함수를 통해 평문키를 뽑아내도록 합니다. dptpeek에서 솔루션으로 export 합니다. 평문을 암호문으로 바꿔주는 소스 수정이 필요없이 바로 ReadLine()에서 복호화한 암호문과 비교하고있습니다. 정답은 Leteminman
2015.04.04