목록분류 전체보기 (289)
촉촉한초코칩
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cfyOy2/btrQTVmTg3q/34LeDjuZZ0bD9insOamSS0/img.png)
Key 값을 찾아야 하는데 먼저 파일을 OllyDbg에서 열면 성공 메시지가 보인다. 12번은 Key값과 사용자 입력값을 비교해서 맞으면 성공 메시지가 뜨는 것이기 때문에 CMP에서 비교하는 값이 Key값이 된다. 코드에 있는 값은 16진수이고 우리가 입력하는 값은 10진수이기 때문에 변환해서 값을 입력하면 성공메시지가 뜬다. → 7A2896BF, 2049480383 그리고 성공메시지 대신 Key값이 뜨게 하기 위해 HxD에서 파일을 열었다. 성공메시지가 뜨는 곳이고 여기에 10진수로 변환한 Key 값을 Overwrite했다. HexEdit에서 가장 오른쪽에 있는 부분이 주소를 나타내는 영역이다. → 0D30 ~ 0D40 사이에서 Key 값의 범위를 써보면 이렇게 된다 : 0D3B ~ 0D45 정답 : ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qjkj5/btrQkuiJon4/MIkMlQ7QIGHEBJJBc0xTEK/img.png)
PEiD로 보면 ASPack로 패킹되었다는 것을 알 수 있다. 그래서 ASPack 패킹하는 방법에 대해 찾아보았다. RETN 0C 코드를 찾으면 아래 RETN 코드가 있다. RETN에 Breakpoint를 건 뒤 F9를 눌러 바로 실행시켜본다. 그러면 이런 화면이 나오는데 여기서 Ctrl + A를 누르면 원래 코드가 보이게 된다. (여기가 언패킹된 부분이기 때문에 언패킹 한 후 가장 첫번째 주소인 OEP는 00445834가 된다.) 여기서 오른쪽 마우스를 클릭한 다음 Dump debugged process를 눌러서 덤프한 다음 파일을 저장한다. 저장한 파일을 다시 PEiD에 넣어보면 언패킹 된 것을 확인할 수 있다. 그리고 등록성공으로 가는 분기점을 찾으면 되는데, 언패킹된 파일에서 등록 성공 메시지로 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkpc59/btrQJipdDCl/ukvKNgKJdk3aNnJ4QrBwGk/img.png)
먼저 StolenByte를 찾기 위해 언패킹하기 전에 파일을 OllyDbg에서 열어보았다. 코드를 보면서 POPAD 밑에 PUSH 명령어가 있는 부분을 찾았다. → 6A0068002040006812204000 그리고 OEP를 찾아야 하는데, OEP는 언패킹을 하고 OllyDbg에 넣었을 때 나오는 첫번째 주소를 뜻한다. 그래서 11번 파일을 언패킹 해주었다. → 00401000
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/diXrPB/btrNom9Jf86/RprmPRYnoJx0H3eOpoB3G0/img.png)
6번 문제를 풀면서 OEP가 언패킹을 하고 OllyDbg에 넣었을 때 나오는 첫번째 주소라는 것을 알게 되었다. 08번 언패킹을 해주고 OllyDbg에 넣어준다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dku7nc/btrNkaJiMks/UcpcHHqi6lUeAOGkpwA1Jk/img.png)
OllyDbg에서 열면 DialogBoxParamA에서 시리얼 번호를 입력하라는 창이 뜬다. 여기에 BreakPoint를 걸고 들어간다. GetVolumeInformationA() 함수 : 지정된 루트 디렉터리가 속한 파일 시스템 정의와 볼륨 정보를 가져온다. https://learn.microsoft.com/ko-kr/windows/win32/fileio/obtaining-volume-information istrcatA() 함수는 문자열을 합쳐준다. StringToAdd + ConcatString = ConcatString VolumeNameBuffer에서 비교하는 곳에서 Hex Dump를 CodeEngn으로 수정해서 CodeEngn으로 인식되도록 한다. CodeEngn이 'ß어떤것'으로 변경되는 것..