본문 바로가기

쓰기

http://polaris.aralgood.com/index.php?document_srl=1779329

 

예시 코드

 

 

 

 

*기능

HEX-16 (VIEW)

원문                                                    XX XX XX XX                  XX XX XX XX    XX XX XX XX   <-원문도 박힘

(포인터 4 BYTE, 또는 메모리 효율상 한 라인으로 해결될때는 14~15BYTE 로 사용하여 원문이 메모리에 있음)

 

텍스트 길이                                           잡아먹을 메모리크기        XX XX XX XX    XX XX XX XX

(유니코드일때는 그 텍스트 길이)      (아스키 유니코드 관계 없이 한 라인으로 환산 ex. 아스키 0x0F, 유니코드 0x07)

 

 

따라서, 원문을 번역문으로 놓든 가로채든 할 경우

아래쪽 메모리에 길이 및 최대버퍼를 박아놓음

 

유니코드 일때와 멀티바이트 둘다 사용 가능.

 

 

위 코드 예제의 경우는...

 

(ECX)

XXXXXXXX       원문           XXXXXXXX     XXXXXXXX

XXXXXXXX       길이           길이최대         XXXXXXXX

 

(ECX)2번째 경우의 수

XXXXXXXX       원문                                       (00)00         // 유니코드일때는 (00)도 최대 NULL 문자

XXXXXXXX       길이           길이최대         XXXXXXXX

 

----------------------------------------------------------------------------------------------

첫번째 방법.

 

원문(포인터), 길이(大 14~15byte 이상)

->TRANS([ecx+0x4],PTRCHEAT(LENCHANGE))

 

원문(메모리버퍼), 길이(小 1~14,15byte 이하)

->TRANS(ecx+0x4,OVERWRITE(LENCHANGE,BUFCHANGE)))

//내용이 작은 글은 길어질때 포인터로 전환.

----------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------

두번째 방법.

 

원문(포인터&메모리버퍼 자동판단), 길이(관계없음)

->TRANS(ecx+0x4,UNICODE,OVERWRITE(BUFCHANGE)))

//포인터일 경우 포인터는 바꾸지 않고 그 내부 버퍼 덮어쓰기

//내용이 작은 메모리버퍼 일 경우 번역 길이가 짧으면 덮고, 길 경우에만 포인터 바꾸기

 

+추가. 기존 버퍼 무시 기능과 연동하여 버퍼 무시를 사용하지 않을경우

원 메모리에 글 길이에 맞춰 덮어쓰기 (포인터 변동 안함)

----------------------------------------------------------------------------------------------

 

주의사항,  첫번째 방법은 인자값(TRANS) 의 순서를 중요하게 여기게 됨.

코드로 넣은 순서에 따라(혹은, 전체 코드로 집어넣을때 순서)서 코드를 번역하게 됨/

(위에 첫번째 방법에는 포인터를 먼져 번역후, 두번째로 메모리인자를 확인할때 번역유무를 자동 판단)

이점을 유의(이용)하여 코드를 생성.

 

둘다 같은 결과가 나올지도 모르지만. 엔진에 따라 어느 방법이 안전이 좌우 될지는 모르는 상황.

따라서 2개 모두 구현완료.

 

 

 

*기타 추가사항

1.메모리 및 글 확인시 첫번째 데이타 확인 방법은 유니코드, 멀티바이트 개별로 나누어 검사

2.비정상적인 메모리를 포인터로 받으려고 하는 것은 무시 처리

3.위 기능에 대한 충돌현상 제거

4.메모리 옆 체크박스가 초기화 되지 않던점 보안

5.기타 기억 안나는 사항들. 

 

 http://erogame.wisegiga.net/?document_srl=9225

분류 :
Archive
조회 수 :
5924
등록일 :
2011.10.03
17:35:01
엮인글 :
https://arallab.hided.net/47815/336/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/47815

whoami

2011.10.03
21:53:26

안녕하세요 피시님 ^^

 

소스를 같이 올려 주시거나 혹은 SVN 에 등록(커밋)해주시겠어요?

그래야 다른 분들 (아랄님이시라던가 Hide_D君님이시라던가) 이 최신으로 업데이트도 하실 수 있고

0.3 용으로도 제작을 하실테니까요.

프시쵸

2011.10.04
21:35:53

음, 전설의 그 '아랄'님은 이제 안 오시는 거 아닌가염=ㅅ=

프시쵸

2011.10.04
21:36:10

으음, 역시 멋진!!!



List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
349 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 7719   2008-08-06 2009-01-06 01:00
 
348 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080806(테스트버전) [1] file Hide_D 8712   2008-08-06 2009-01-06 01:00
 
347 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807 whoami 8699   2008-08-07 2009-01-06 01:26
고급 옵션 설정시 중복되는 버그 고친 버전입니다. 이상한데.. 분명히 고친 것 같았는디... 버그가 또 발견되어 삭제합니다. http://aralgood.com/zbxe/56444 를 참조.  
346 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807_2 file whoami 12660   2008-08-07 2009-01-06 01:26
 
345 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 8067   2008-08-09 2009-01-06 01:26
 
344 Talk 플러그인을 다시 Multi2용으로 만들면서 생긴 궁금증 [4] Hide_D 8374   2008-08-09 2009-01-06 01:26
MFC를 그대로 써야하는지라 API용의 기본틀을 쓸순 없어서 새로 만들었는데, extern "C" __declspec(dllexport) BOOL __stdcall OnPluginInit(HWND hSettingWnd, LPSTR cszSettingStringBuffer); extern "C" __declspec(dllexport) BOOL __stdcall OnPluginOpt...  
343 Archive [플러그인, 소스] 사용자 대본 & 사전 플러그인 20080809(테스트버전) [2] file Hide_D 8362   2008-08-09 2008-08-10 00:02
 
342 Talk 맵을 이렇게 사용해도 되나요? [2] Hide_D 8705   2008-08-09 2008-08-09 22:13
void CCustomDic2::SetKey(LPCSTR JpnWord, LPCSTR KorWord) { map<UINT,struct DicWord> EmptyMap; struct DicWord TempWord; map<size_t,UINT>::iterator iterBook; TempWord.WordLen = strlen(KorWord); TempWord.WordN = WordN++; UINT Hash=MakeStringHas...  
341 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810 file whoami 8164   2008-08-10 2009-01-06 01:26
 
340 Archive [플러그인, 소스] CustomSD 0.3 20080810(테스트버전) [2] file Hide_D 7743   2008-08-10 2008-08-10 14:40
 
339 Talk 다음 계획 [1] Hide_D 9995   2008-08-10 2009-01-06 01:33
1. 개행 문자 처리 사용자가 정한 문자열(hex나 문자열중 하나 선택해서 입력)으로 벽을 뚫지 않도록[...] 개행문자를 처리해주는 기능 번역률 향상도 기해 할 수 있을듯. 2. 사용자 대본 기능 관련 http://koreajapan.pe.kr/make.htm 이녀석 문법 귀찮네요[.....  
338 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 7908   2008-08-10 2008-08-10 15:13
문자열 을 지원하나요? 아니... 으음 c:documents and settindsuser내 문서Game,A루트(미완성).txt 라는 문자열을 파서로 받을 수 있나요?  
337 Archive [플러그인, 소스] CustomSD 0.3 20080810_2 [1] file Hide_D 8012   2008-08-10 2009-01-06 01:26
 
336 Talk CustomSD 원문 단어 흘리기 결과. [2] whoami 9910   2008-08-10 2009-01-06 02:06
제가 다른분이 제작하신 플러그인 테스트를 하게 될줄은.. 어쨌든. 원문 - 誰だ⑤ 誰なんだよ⑤@n美奈⑤ そいつは誰なんだ⑤ 번역 - 누구다⑤ 누구이에요놡@n미나⑤ 그 녀석은 누구야 놡 단어 흘리기 (?) 가 되다 안되다 하는군요. 중간에 "놡" 은 된 것이고.. ⑤ ...  
335 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810_2 [1] file whoami 8641   2008-08-10 2009-01-06 01:06
 
334 Talk 필터 3개 커밋 완료했습니다. [2] Hide_D 9263   2008-08-11 2009-01-06 01:06
HK2FK KoFilter TextDump whoami님이 안하셨길래 대신; RLCMD는 해도 괜찮을 것 같긴 한데, 이건 안하나요?  
333 Talk 어휴.. [2] file whoami 8573   2008-08-11 2009-01-06 01:06
 
332 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811 file whoami 8097   2008-08-11 2009-01-06 01:05
 
331 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811_2 file whoami 8479   2008-08-11 2009-01-06 01:05
 
330 Talk 옵션 스트링 버퍼 말이죠? [1] Hide_D 10830   2008-08-11 2008-08-11 23:22
ezTransXP단부터 확인을 해봤더니 ezTransXP도 LPSTR을 이용하는 군요 ㄱ- 옵션으로 파일명을 받으려고 했는데, 이거 참 난감하게 됬네요. c:ゲ?ムABCA_Route.txt 하면 못열테니까요. 아직 LPTSTR은 안줘봐서 모르겠지만 안된다면 충격이 좀 클듯;