http://lab.aralgood.com/?mid=board_qna&page=2&document_srl=26805&comment_srl=26831에서
말씀드린 게임... XP에서 자체 디버깅해서 코드적용시킨후, 재부팅해도 외계어가 나오지 않더라구요..
제 컴퓨터 OS인 비스타에선 보안성이라던가 호완성 때문에 코드가 바뀌는 것 같기에
해결할 방안에 대해 여쭈어 볼려고 여쭈어봅니다( _ _)
혹시나 제 OS 환경이 필요할까해서 올립니다..
이외 필요한 자료 있으시면 말씀해주세요-
세이린
- 2009.09.21
- 21:43:52
Cached가 아닌 AT코드가 꼭 필요해서 이렇게 필사적입니다;ㅁ;//
요번에 캔 코드의 address는
0X00DFB620
0X00DFB980
0X00DFEC20
이며,
참고용으로 예전에 캔 코드는
0X0115B620
0X0115B980
0X0115EC20
이였으며,
OS XP컴퓨터에서 캔 코드는
0X0043B620
0X0043B980
0X0043EC20
이었습니다. 이로 보아 코드 캘때 B620/B980/EC20가 고정이라는 점을 알아냈습니다..
score는 코드 캘때마다 한번도 변함없이 고정이더라구요.
순서대로
0X00DFB620→[[ESP+0X14]]
0X00DFB980→[[ESP+0X14]]
0X00DFEC20→[[EAX, ESP+0X4, ESP+0X8]]이면 문제없이 대사 번역되어 나옵니다^^;
아랄
- 2009.09.21
- 22:06:54
XP에서 캔 코드를 보고 문득 추측한 건데요
보통 비스타 이전의 윈도우즈에서는 0x00400000 에 실행파일을 올립니다.
따라서 AT코드를 0x004XXXXX 라고 해도 무방했죠.
하지만 위의 비스타 운영체제의 경우 0x00400000이 아닌 다른 메모리에
실행파일을 올릴 수도 있겠다는 생각이 문득 드는군요.
물론 얼핏 기억하기론 XP도 이런 것을 설정할 수 있는 걸로 알고 있습니다만
왠만하면 0x00400000에 실행파일을 올리 도록 기본적으로 설정이 되어있죠.
비스타는 아닐수도 있겠군요.
이 부분 0.3 개발시 고려하겠습니다.
일단 뜬 함수의 주소를 알려주세요.
함수가 계속 바뀌는 경우에는 두가지가 있는데
1. 시스템 함수인 경우(GDI.dll 와 같은 경우)
2. 가상함수를 사용하는 경우[몇몇 경우에만]
어찌되었든 두가지모두 상위 함수를 찾아야 한다는 점에서는 변함이 없을겁니다.
코드를 찾기가 정 뭐하면 그냥 Cached를 놓고 하는것을 추천합니다.
아마 이 게임은 Cached로도 잘 돌아갈 가능성이 높습니다.