본문 바로가기

쓰기

10월 3일자에 간간한 버그 및. 약간의 생각의 변심으로 인해

크게 수정되었습니다.

aaaa.png



먼저 "1바이트 - > 2바이트" 기능과 문자와 문자사이 공백 삽입의

서로간 연동의 기능이 강화되었습니다.

(2바이트 치환간의 문제도 강력강화)


4월1일자에 기능을 제외시켰던 중복번역검사의 디폴트로 된 기능을

옵션으로 빼놓았습니다.


개행분할번역은 세부 옵션으로 올라갔습니다.


스마트 방식의 Will Plus 엔진을 겨냥한 기능이 생겼습니다.

(후킹 가능 형태는 추후 공지하겠습니다)


10월 3일자에 적용된 

포인터 형태로된 것 일괄 복원 기능을 옵션으로 빼놓았습니다.

(일부 기존 코드들에서 안좋은 반응이 발견)





덧으로 공지 및 필독사항입니다.


포인터 백업기능을 사용할때는 해당 가로챌 포인터가 항상 살아있는지 확인해주시기 바랍니다.

대사를 출력후 해당 메모리를 날려버리는 구조라면

아랄 메모리가 날아갈경우나 복원할 메모리를 날려버릴경우

복구시 다음 참조때 에러가 발생하게됩니다.


그것만 확인한다면 포인터 백업기능은 막강한 힘을 발휘할 수 있습니다.



메모리 덮어쓰기와 달리 포인터 바꿔치기는

하나의 인자값(ex.[esp+0x4] 등) 에 하나씩 아랄 버퍼를 할당하게 됩니다.


만약 포인터 바꿔치기할 장소가 콜스택이 엄청쌓인 곳에 걸경우

(순수 스크립이 몽땅와서 냅따 좋다고 이곳을 후킹하실경우)


아랄 포인터 하나만 가지고 거기 오는 전체를 감당하게 됩니다.


따라서 어떤 이레귤러등이 발생하여 에러가 날 확률이 높습니다.


되도록 해당 콜스택을 전부 하나씩 후킹을 거시는게

에러나 튕기는 확률히 극적으로 낮아지게됩니다.


ex. 세이나 루카나 예제코드

무한콜스택이 쌓인곳에 후킹하여 포인터 바꿔치기 사용한 코드(하나의 버퍼만을 공용으로 사용)

HOOK(0x0047FEF0,TRANS([[esp+0x4]],PTRCHEAT),RETNPOS(COPY))


콜스택 전부 참조하여 순수 글이 오는것만 골라내어 참조시(주소마다 아랄버퍼 각각 전부 할당되는 코드)

HOOK(0x004576C6,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x00467A27,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x004F2C7C,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x004F484B,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x004FA343,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x004FA405,TRANS([[esp]],SMSTR(IGNORE)),RETNPOS(SOURCE)),HOOK(0x005128DC,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x00523385,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x00560A56,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x00567B17,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x00567B77,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE)),HOOK(0x0062896B,TRANS([[esp]],PTRCHEAT),RETNPOS(SOURCE))


당연히 테스트 및 디버그 결과 후자가 안전했습니다.

+ 포인터 백업 기능도 해당 갯수 만큼 전부 백업을 각각 지원해주게됩니다.


따.라.서. 정리하면

무한콜스택으로 걸곳은 해당 함수내에서 복사만 하고 바로 갔다버릴때의 장소에만 바꿔치기를 사용합니다.

그냥 무한 콜이라면 차라리 메모리 덮어쓰기가 더 낳을정도였습니다.

콜을 코드로 각각 분리하여 포인터 바꿔치기로 코드를 내는게 올바른 방법입니다.


다소 방법의 수가 적어보일수도 있습니다만 저 3가지 택 밖에 없는게 사실입니다.



무한콜스택을 거는곳에 포인터를 사용하기 위해

포인터 백업기능을 지원했습니다.

위에 예제에서 첫번째 코드. 무한콜로 오는곳에는 포인터 백업 기능을 켜주면 튕김이 극소로 줄어듭니다.


다만 그래도 후자(두번째 코드)가 더 안전했습니다.(게임엔진내에 자체 버퍼 초기화를 막을 방법은 없더군요)

EroGame

2012.10.05
22:08:38

현재 버전으로 아래 하위 버전의 모든기능을 포함하게 됩니다.

그러므로 지금부터는 아래 버전을 찾아 다운받을 필요가 없습니다.


앞으로는 이 날짜 이상의 버전으로 이용해주세요.

List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
409 Archive [플러그인] CustomDic 4.0.4.131 RC [5] file Hide_D 24298   2011-01-05 2011-04-24 21:07
 
408 Archive [플러그인, 소스] preHK2FK [3] file whoami 23992   2008-07-04 2009-01-06 02:08
 
407 Talk ATS의 문제점.. Hide_D 23578   2010-05-15 2010-05-15 19:18
0.2의 그 복잡하고 어려운 방식은 일단 뒤로 두고 0.3의 ATS가 갖는 허점이 1. 첨부파일, 필터 경로들을 [일일히!] 입력해야 한다. 2. 코드가 갱신되었을 때 대처할 방법이 전혀 없다. 일일히 입력하는 것 자체는 나쁘지 않은데, 2번 때문에 심각한 문제가 됩...  
406 Talk FixLine 버그 발생 [1] Hide_D 23382   2010-04-25 2010-05-01 22:19
!梨桜 01 21 979C 8DF7 을 처리하기 위해 %01%21{T} 로 설정하면 FixLine이 씹고 다음 데이터를 뱉지 않음 %21{T} 로 설정하면 아예 '닥치고 튕김' 지정된 문자열 + 임의의 문자열 구조로 했을때 버그가 있는듯 최대한 빨리 수리를 -_-;  
405 Talk '잡담인데' [2] FrigateBird 23212   2010-02-22 2011-06-28 01:25
0.3에서 일부 게임이 코드를 잠시 none 해야 되는 녀석들이 있잖아염 코드를 잠시 슬쩍 어디 처 올리든 해서 단축키로 전환하면 좋겠는데  
404 Talk [뻘글] 요새 프로텍터가 하도 무서워서 Hide_D 22878   2010-10-26 2010-10-26 00:15
대상 클라이언트에 최소한의 Injector만 '꽂아'두고 실제 동작은 '서버'에서 Injector와 IPC만으로 구동하는 형식은 어떨까 싶군요. Injector에서 '메모리' 입출력 관현 함수와 기본 WinAPI에 사용되는 DLL 로드(이건 위험하지 않으니까!)와 실제 WinAPI를 실...  
403 OtherFiles [소스, 실행파일]MeCab을 독음 변환기로 사용한 예제 file Hide_D 22691   2009-09-09 2011-06-28 01:25
 
402 Talk 뭐라고 설명해야할까요 -_-; 하여간 설명 file G2m 22598   2010-01-21 2010-01-21 19:17
 
401 Talk KiriKiri 텍스트 파싱 개선 프로젝트! Hide_D 22403   2010-10-28 2010-10-28 00:21
필요가 생겨서[!] 이제 좀 개선을 시켜볼 생각입니다. 우선 문제가 되는 곳은 text=""겠군요  
400 Archive [플러그인,소스] 사용자 사전 플러그인 0.1 20080718_2 [5] file Hide_D 22052   2008-07-18 2009-11-13 00:53
 
399 Archive [번역툴]QuickTrans Beta 0.0.6 [6] file HaruKaze 21992   2009-01-28 2011-04-27 12:51
 
398 Archive [플러그인,소스] KiriKiri 테스트 버전 20090729 [11] file whoami 21238   2009-07-29 2009-09-13 14:57
 
397 Talk FixLine 테스트버전 081215 [1] file 그레이 20429   2008-12-16 2008-12-16 16:37
 
396 Archive 정착한A님 여기 ATCode.dll 이거!! [3] file 아랄 20120   2008-10-07 2009-01-06 01:24
 
395 Archive [소스, 플러그인] Cache 테스트버전 101127 file Hide_D 19949   2010-11-27 2010-11-27 04:19
 
394 Talk Hide_D's Todo List [1] Hide_D 19791   2010-03-01 2012-08-03 09:02
좀 써 놔야 할것 같습니다 -_-; 안써두니까 안해요 1. FixLine v2 패턴간 빈칸을 없애는 옵션을 추가 -> 아마 큰 패턴 단위로 옵션을 추가할 수 있도록 하는게 좋을 것 같다. 처리 순서 변경 -> 선 개행, 선 패턴, 번역, 후 패턴, 후 개행을 선 패턴, 선 개행,...  
393 Talk 음음... 제가 도와드릴 일이 있을까요,,,? [2] S.sage 19487   2008-11-20 2009-01-06 01:10
뭐 별볼일 없는 고양이손이긴 하지만.;;;;;; 놀고있는 인원 여기하나 있으니 쓸려면 써주세요~..;;;  
392 Talk 히데님이 부탁하신거.... [1] file 류제로 19458   2009-03-21 2011-06-28 01:25
 
391 Talk 1빠!!! [1] 아랄 19435   2008-07-08 2011-06-28 01:25
옹예~  
390 Talk 어떤 정신나간 게임은 UTF-32를 쓰네요 -_-;; [1] Hide_D 19284   2010-01-30 2010-01-30 22:52
개발자가 미쳐서 Visual C++ 6.0에 iconv라도 섞어쓰는지 (아니면 gcc에 iconv... 던가) 내부 문자 처리를 UTF-32로 합니다 OTL