분류 전체보기(169)
-
리버스엔지니어링 문제 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 -
패치(크랙)
Key4.exe라는 파일을 크랙해보도록 하겠습니다.Key4는 위와 같이 두 입력란이 있고 아무거나 입력했을때 아래와 같은 창을 띄웁니다. 어셈블리 코드를 보면 다음과 같은 구간이 있습니다. CMP EAX, ESI를 통해 두 메시지박스 중 하나를 띄워줍니다. 단순히 성공했다는 메시지를 띄우는것이 목적이라면 JMZ명령어를 수정해 줄 수 있습니다.EAX와 ESI의 값을 같게 수정해줘도 되지만 JMZ명령어를 없애줘도 됩니다.위와 같이 JMZ명령이 있던 부분을 NOP로 채웠습니다. 그럼 점프가 발생하지 않고 바로 아래의 Great, 메시지를 출력하도록 할 수 있습니다. OllyDbg는 이렇게 변경된 파일을 실제 프로그램으로 생성하는 기능이 있습니다. 디버거에서만 변경사항을 확인해보지 않고 실제 변경 사항이 적용된..
2015.04.04 -
리버스엔지니어링 문제 12
http://codeengn.com/challenges/basic/12 Key값을 구하고 Key값을 메시지박스에 출력하도록 하라고하네요.Key는 바로 구할 수 있습니다.7A2896BF의 10진수인 2049480383가 키가 됩니다. 이 값을 넣으면 축하한다는 메시지박스가 뜨는데 이 메시지 대신 키값을 띄워야합니다.HexEdit로 열고 메시지 부분을 봅니다. 단순히 이 값을 키값으로 변경해주면 됩니다. 위치는 0x0D3B~0x0D45(NULL포함)이 됩니다.답은 20494803830D3B0D45
2015.04.03 -
리버스엔지니어링 문제 11
http://codeengn.com/challenges/basic/11 OEP와 Stolenbyte를 구하는 문제입니다.Ollydbg2.01로 열게되면 바로 제대로된 시작부분을 보여줍니다. OEP=0040100C그리고 OEP에서 이전 문제처럼 MessageBoxA를 호출하고 있습니다. 4개의 인자가 필요한데 하나밖에 없습니다. 답은 0040100C6A0068002040006812204000(더 자세한 풀이는 문제9번을 봐주세요.)
2015.04.03