이번에 천극희가 드디어 나왔길래 열심히 설치하고 실행했으나 프텍에 걸려서 이방법 저방법 다써본결과
체험판 제2장 실행파일을 가져와서 실행 시키면 정상적으로 작동 되는걸 확인하고 자본주의자님이 올려주신 체험판 코드로 당연히 안될걸 알기에
옮겨 심어 볼까하여 체험판을 실행 시켜 올리디버거로 어태치를 하고 코드 주소들 각 각 바이너리들을 가져와서
본판에서 다시 바이너리를 검색 주소를 찾아서 적용 시켜봤으나
일단 이름주소는 정상적으로 출력되나 메세지 주소는 안먹히기에 바이너리 패치주소까지 끌고와서 적용 시켜 보았으나 이번엔 팅기는 현상이..
일단 자본님이 찾으신 바이너리 패치 & 후킹주소 입니다.
{0049A851(E8 AB 0A 0A 00),0049A946(90 90 E9 41 0B 0A 00 90),00489B90(E9 38 17 0B 00),0053B2CD(8B 54 24 04 53 81 3A 44 61 74 61 75 21 81 7A 04 2F 49 6D 61 75 18 81 7A 08 67 65 2F 66 75 0F 81 7A 0C 6F 6E 74 2F 75 06 C7 02 20 00 00 00 68 95 9B 48 00 C3 E8 11 00 00 00 8B 91 14 01 00 00 0F B6 02 42 89 91 14 01 00 00 C3 60 89 E5 E8 48 00 00 00 50 FF B1 14 01 00 00 3D CC B4 53 00 75 0E C7 05 F4 DF AE 00 01 00 00 00 89 EC 61 C3 E8 33 00 00 00 8B 45 FC C6 00 00 E8 76 00 00 00 6A 00 90 90 90 90 E8 76 00 00 00 8B 45 FC 89 EC 89 44 E4 1C 61 89 81 14 01 00 00 C3 B8 CC B4 53 00 90 90 90 90 90 90 C3 55 89 E5 8B 75 08 8B 7D 0C 0F B6 06 47 46 50 56 E8 22 00 00 00 89 C1 F3 A4 FE 0C E4 80 3C E4 00 74 05 83 C6 0D EB E8 C6 07 00 83 C6 0C 89 35 F0 DF AE 00 89 EC 5D C3 55 89 E5 31 C0 8B 55 08 80 3C 10 00 74 03 40 EB F7 89 EC 5D C2 04 00 8B 44 E4 08 40 90 90 90 90 90 C3 55 89 E5 6A 3C 8B 75 10 C6 06 00 46 8B 5D FC 56 53 E8 41 00 00 00 01 C6 56 E8 67 00 00 00 56 50 6A 0D E8 79 00 00 00 89 F7 BE BF B4 53 00 B9 0C 00 00 00 F3 A4 89 FE 8B 45 10 FE 00 83 7D 08 00 75 0B 90 90 90 90 90 C6 07 0A 47 EB C2 C7 07 11 00 00 00 89 EC 5D C3 55 89 E5 52 51 8B 55 0C 31 C9 8A 04 11 3C 00 74 0D 39 4D 08 76 0E 3C 80 72 01 41 41 EB EC FF 44 E4 24 90 90 89 C8 59 5A 89 EC 5D C2 08 00 55 89 E5 51 8B 45 08 31 C9 80 3C 01 00 74 03 41 EB F7 89 C8 59 89 EC 5D C2 04 00 60 89 E5 8B 4D 28 8B 55 2C 8B 5D 24 01 D3 8A 04 11 88 04 19 83 F9 00 74 03 49 EB F2 89 EC 61 C2 0C 00 50 83 3D F4 DF AE 00 01 74 0B A1 F0 DF AE 00 89 86 14 01 00 00 58 C7 05 F4 DF AE 00 00 00 00 00 39 EF 0F 85 A0 F4 F5 FF 8B 44 E4 1C E9 8F F4 F5 FF 00 00 00 00 BE BE BE FF FF FF FF FF 00 82 C1 00)}
0049A851 , 0049A946 , 00489B90 , 0053B2CD 총 네개의 주소가 있고 이것을 체험판에서 바이너리를 따와서 본판에서 찾으면
0049C761 , 0049C856 , 0048BA90 , 005496D9 이렇게 나오더군요. 맨마지막은 체험판에서 검색 해본결과 아무 명령문도 없는 부분 즉 모든 명령문이 끝나고 00 00 00 00 00 00 .... 이렇게 출력된부분이며 마지막 명령문에서 33번째 줄이길래 똑같이 마지막 명령문에서 33번째 줄에 맞췄습니다.
그리고 이번엔 후킹주소 입니다.
FORCEFONT(5),ENCODEKOR,HOOK(0x0046DC10,RETNPOS(COPY),TRANS([esp+0x4],PTRCHEAT)),HOOK(0x004333C0,TRANS([ESP+0x4],PTRCHEAT),RETNPOS(COPY)),HOOK(0x0053B36C,TRANS(EAX,PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x0053B3C6,TRANS(EAX,OVERWRITE(IGNORE)),RETNPOS(SOURCE))
0046DC10 , 004333C0 , 0053B36C , 0053B3C6 이렇게 4개중 46DC10이 메세지 주소부분이라 추정되며 4333C0이 이름 주소 뒤에 두개는 바이너리 패치로 바뀐곳에 해당하는 주소 같습니다.
이것을 본판으로 옴겨오면
FORCEFONT(5),ENCODEKOR,HOOK(0x0046EF80,RETNPOS(COPY),TRANS([esp+0x4],PTRCHEAT)),HOOK(0x00433D80,TRANS([ESP+0x4],PTRCHEAT),RETNPOS(COPY)),HOOK(0x00549778,TRANS(EAX,PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x005497D2,TRANS(EAX,OVERWRITE(IGNORE)),RETNPOS(SOURCE))
0046EF80(메세지) , 00433D80(이름) , (00549778 , 005497D2 (바이너리에 해당하는 주소))
이렇게 되더군요.
여기서부터가 문제입니다. 잘대조해서 옴겨온것까지는 좋았으나 바이너리 패치를 할경우
0049A851(E8 AB 0A 0A 00),0049A946(90 90 E9 41 0B 0A 00 90),00489B90(E9 38 17 0B 00)
이 세부분은 적용 즉시 팅겨 버립니다. ( 뒷부분은 안팅기는걸로 봐선 정상적으로 패치가 이뤄지는듯합니다.)
그리고 바이너리 패치 팅기는 부분을 생략하고 코드를 적용시키면
이름은 잘 번역이 되나 메세지가 번역이 안되는 현상이 발생합니다.
두개 각각 주소 정말 열심히 대조해가면서 찾은부분이라 뭐가 문젠지 전혀 모르겠네요.
군퀘가기전에 후딱 클리어 해보고 싶은데 말이죠 ㅠㅠ.. 굇수님들 도와주십시요!
DetectiveConan
- 2014.10.16
- 10:19:22
흐음.. 그렇군요.. 제실력이 아직 엔진별 야메 코드찾기 바께 못하는 수준이라 바이너리 패치는 물론이며 직접 코드를 파는건 무리일거같으니 얌전히 코드 나오길 기다리는 수바께 없겠네요 ㅠㅠ 코드 찾아보려 정석방법대로 메세지 바이너리 따와서 검색해서 찾아보려했으나 더미바께 없더군요.. ㅠㅠ
글쎼여 글로만 봐서는 알수가 없습니다.
아마 B패치할떄 팅시신다면 그부분이 다른작업을 하는 영역이 섞여있는거져
본파 b패치가 반드시 체험판에 맞는 보장도 없습니다.
예를들면 본편에서는 433d80에서 이름과 보이스에 해당하는명령어를 처리하는반면 체험판에서는 이름만 처리하고 보이스는 다른데서 처리하는 경우가 있을수 있습니다.
그러므로 b패치를 체험판이면 집적 체험판을 디버깅하셔서 어떻게 진해되는건지 보시고 다시만드는것이 좋은 방법입니다.
그리고 팅기는 이유를 제일 알기 좋은 방법은 우선 게임을 키시고 올리 어태치로 디버깅을 합니다.
그후 아랄을 b패치를 하면 팅기는 명령어쪽에 올리가 멈출꺼에요 그쪽으로부터 쭉 올라가면서 파악하는게 제일 빨라요.
근대 이건 글로 설명하기가 애매하내요...