목록IT 독학 (30)
abcdef
다운로드 받습니다. 실행시키면 일정시간 이후에 자동으로 꺼집니다. 이번 문제는 몇밀리세컨드 이후에 프로그램이 종료되는지 묻고 있습니다. 참고로 밀리세컨드는 0.001 초 입니다. 올리디버거로 실행하면 pushad가 있는 것으로 보아 UPX패킹이 되어있을 것입니다. 언패킹 해주시고 실행시켜보면 오류창이 뜹니다. 그러면서 autoilt 를 쓰라고 대놓고 홍보를 하네요. 써서 구하면 이렇게 뜨는데 인자 상태로 보아 11.12가 프로세스 꺼지는 시간인거 같습니다. 11.12초를 밀리세컨드로 환산해주면 11120입니다. ※ 참고블로그 : hackingboy
먼저 다운로드해줍시다. 실행해봅시다. 이번 문제는 저번 문제들과 동일하게 name이 CodeEngn일 때 Serial 값을 찾는 것입니다. 올리디버거로 열어 성공창을 찾아갑니다. 분기점이 있으니 그곳에 bp를 걸고 실행시킵니다. 전 이렇게 넣었습니다. 그럼 lstrcmpiA 함수에 string 1에 저희가 입력한 값이 들어갑니다. Cmp가 들어간 것으로 보아 비교함수 인듯합니다. 두 문자열을 비교하는 것인 것같으므로 답은 아마 06162370056B6AC0 일 것 입니다. 입력해보면
먼저 다운로드 해줍니다. 실행시켜봅니다. 이번 문제는 key 값이 BEDA-2F56-BC4F4368-8A71-870B 일 때 name을 구하는 겁니다. Name은 숫자가 되었든 알파벳이 되었든 한글자입니다. 올리디버거로 열고 성공창을 찾아갑니다. 그리고 분기점을 찾아 bp를 걸고 실행시켜 값을 입력해주었더니 안됩니다???? 두글자로 해보았더니 안됩니다. 3글자로 하니까 되었습니다. 분명 문제에서 name은 한글자라고 했는데 뭔가 이상합니다. 한글자를 입력했을 때 뜨는 수상한 문구를 찾아갑니다. 분기점을 찾아 bp를 겁니다. 분석해보니 EAX와 3을 비교해 EAX가 3이상일 때 저 문구가 안뜨더군요. 이렇게 입력하고 bp까지 가보았더니 EAX 값이 9입니다. EAX는 자릿수를 뜻한다는 걸 유추할 수 있습니..
먼저 다운을 받아줍니다. 실행시켜봅니다. 이번 문제도 동일하게 name이 CodeEngn일 때 serial 값을 찾는 것 입니다. 올리디버거로 열어 성공창 text를 찾아갑니다. 이제 조금만 위로 올리다 보면 성공창이 뜨는 cmp분기점이 나오는데 EAX와 [EBP – 3C]에 있는 값을 비교해 같으면 성공창이 뜹니다. 저는 이렇게 입력하였습니다. 그리고 bp까지 실행해줍니다. 보게 되면 EAX가 저희가 입력하는 키 값인 걸 알 수 있습니다. (0x3039 = 12345) 이제 EBP – 3C에 들어있는 값을 찾아야합니다. Stack 창에 가봅시다. 그리고 이렇게 주소를 EBP기준으로 바꿔주시면 값을 찾을 수 있습니다. E4C60D97을 10진수로 바꾸면 3838184855 가 됩니다. 이게 답입니다.
먼저 다운해줍니다. 그리고 실행해봅니다. 이번 문제는 저번 문제와 똑같이 name이 CodeEngn일 때 serial 값을 찾으면 됩니다. 올리디버거로 열어 성공 text를 찾아갑니다. 분석해보니 cmp 분기점을 기준으로 성공창이 뜹니다. EAX와 45B844를 비교해서 같으면 성공창이 뜹니다. 이렇게 넣었었는데 보니 EAX가 저희가 넣은 serial 키입니다. 45B844에는 0x6160이 들어있는 것 같습니다. 10진수로 변환해 주면 24928 입니다. 이게 답이 되겠군요.
먼저 다운받아줍니다. 실행해보면 이런창이 뜹니다. 이번 문제는 name이 CodeEngn일 때 serial값을 찾는 것입니다. 올리디버거로 열어 실행해보면 바로 PUSHAD가 뜨는데 패킹이 되었다는 걸 알 수 있습니다. 정보를 확인해 보면 upx패킹이 되어 있는 걸 알 수 있습니다. 언패킹 해줍시다. 언패킹하고 텍스트로 성공창을 찾은 후 보면 cmp 분기점이 있는데 아까 저는 이렇게 넣었습니다. 보니 밑에 16진수로 나타나져있습니다. 0x03039 은 10진수로 12345인걸 보니 EAX가 우리가 입력한 serial 값인 걸 알 수 있습니다. 0x129A1 을 10진수로 고치면 76193 입니다. 그럼 답은 76193이겠네요.
먼저 깔아줍니다. 실행시켜봅니다. 답을 구하면 되는 문제입니다. 올리디버거로 열라했으나... 열리지 않습니다. 정보를 확인해봅시다. C#으로 이루어져 있습니다. 저흰 기계어를 볼 수 없기에 디컴파일 해줄 툴을 구합니다. Reflector 라는 툴이 있습니다. 열어주시고 소스로 다시 디컴파일 해줍시다. 이제 소스를 보게 되면 밑에 if 분기점을 기준으로 성공창이 뜹니다. plainText가 뭔지 알면 답을 구할 수 있을 것 같습니다. 소스를 한 줄 추가해 plainText가 뭔지 알아냅시다. 답이 뜹니다.
먼저 깔아줍니다. key값과 hexedit해서 주소영역을 찾으랍니다. 실행해보면 이런 창이 뜹니다, 막 입력을 해봐도 아무런 창이 안뜹니다. 아마도 key값을 입력해야지 창이 뜨는 것 같습니다. 올리디버거로 열어서 실행해보면 oep가 바로 나옵니다. 그리고 밑에 내리다 보면 성공창과 함께 분기점이 나타나게 됩니다. 분기점까지 실행을 시켜 key창에 123을 넣고 bp를 걸어놉니다. EAX와 7A2896BF를 비교해서 같을 때 성공창을 띄웁니다. 일단 EAX가 무엇인지 알아봐야되는데 보니 16진수 7B는 10진수로 123입니다. 그런걸 보니 EAX는 우리가 입력하는 값인 것 같습니다. 16진수 7A2896BF 를 10진수로 바꾸면 2049480383 입니다. 이게 key값이 됩니다. Winhex로 까보면 ..
먼저 사이트에서 문제를 다운받아줍니다. 실행시켜봅니다. 차례대로 두 창이 뜹니다. 이번 문제는 oep와 stolenbyte를 찾는 것입니다. 올리디버거로 열어보겠습니다. F9로 실행을 시켜주면 OEP인지는 모르지만 PUSHAD 가 나옵니다. 전 단계에서 설명했듯이 PUSHAD가 있으면 POPAD도 있을 수도 있습니다. Search 해봅시다. 딱 한 개 밖에 없습니다. 가보죠. 뭐가 OEP인지 알 수 없으니 다 BP를 걸어줍니다. 하나씩 실행하다 보면 마지막 코드 JMP를 기준으로 실행창이 뜨게 됩니다. 0040100C가 OEP인 것을 확인할 수 있습니다. 이제 Stolenbyte만 찾으면 됩니다. Oep를 부분을 보게 되면 하나 없는 문자열이 하나 있습니다. Click OK to check for the..
이번 문제의 미션은 OEP를 구한 후 성공 창으로 가는 OPCODE를 찾으면 됩니다. 일단 다운을 받습니다. 실행시켜봅니다. 이렇게 뜨고 아무것도 입력이 되지 않습니다. 올리디버거로 열어봅니다. 그리고 OEP를 찾아보려고 해도 오류도 계속 뜨고 BP도 자꾸만 사라집니다. 이런 오류창이 계속 뜨는데 아마도 이 파일이 패킹 되어 있을 확률이 아주 높습니다. 패킹은 용량줄이기 + 보호목적으로 암호화를 하기 때문에 복잡합니다. 먼저 PUSHAD가 첫번째로 나와있는데 패킹은 POPAD로 웬만하면 다 풉니다. POPAD를 찾아줍시다. 우클릭 – Search for – All commands - POPAD입력 매우 많지만 일단 첫번째 POPAD를 더블클릭합니다. 조금만 움직이니 바뀌어 버리는 것으로 보아 아닌 것 같..