본문 바로가기

쓰기

현재 LEN 기능으로 길이 연산 체크를 할때

 

-1이나 0의 범위까지 0x00인 NULL 문자로 길이 체크를 하잖아요?

 

그렇지 않은 경우도 있네요.

길이는 있으나 해당 번역문+길이 위치에 NULL문자가 없는 형태의 길이 교체형태도 추가주세요.

 

(그때는 길이값만 변하도록 말이지요.)

 

2번째 추가 건의 기능은

해당 길이값에 가감연산이 되도록 인자값을 더 넣어주셨으면 합니다.

예를 들어 지금 현재의 기능은

해당 인자값 위치에 길이와 번역될 길이를 비교하여 그 길이 이후에 0x00문자가 있나없나 -1의 범위까지 체크한 후 변경하는 형태이면

저 체크기능을 제외하고

특정 인자를 몇개 추가하여 연산형태로 교채하는 방법이 좋을것 같네요.

 

ex. LEN([esp]+0x4)  인 형태에서

번역되어 교체될 길이값 : TRL (해당값은 번역된 길이로 고정, 유니코드일때는 정확한 HEX길이값으로)

번역되기 전 원문의 길이값: TXL (아랄트랜스가 번역하려는 원문의 길이값을 직접 측정해야겠지요?)

가리킨 주소에 있던 길이값: TAL (바꿀 장소에 있는 원래 값입니다.)

ex.LEN([esp]+0x4,TRL) //기본적인 형태, 제외가능

ex.LEN([esp]+0x4,TRL+0x1) //NULL문자 값의 길이까지 측정할경우

ex.LEN([esp]+0x4,TRL/0x2)  //유니코드의 특정 형태일 경우

ex.LEN([esp]+0x4,TAL+TXL-TRL)  //이건 3번째 건의할 기능에서 필요한 경우입니다.

 

위와같은 형태로 오른쪽의 값을 무조건 왼쪽 값의 넣는 형태입니다.

(그렇게 한다면 위의 체크기능은 필요없을 뿐더러 없에야 하겠지요)

 

 

3번째 추가 건의 기능은

LEN값을 여러곳 지정했으면 좋겠네요.

현재로써는 길이값 수정은 한 구간 밖에 되지 않은데, 저걸 여러 곳도 되도록 하면 좋겠네요.

ex. LEN([esp]+0x4,TRL),LEN([esp]+0x8,TAL+TXL-TRL)

 

뭐, 이런식입니다.

(사실 저렇게 구현되면 LEN([esp]+0x4,TRL),LEN([esp]+0x8,(TRL/0x10+0x1)*0x10+0xF)  과 같은 형태로 스마트 기능이 필요 없어지겠지만요..   -ㅈ- b)

분류 :
Talk
조회 수 :
1766
등록일 :
2012.05.10
10:37:11
엮인글 :
https://arallab.hided.net/63200/5b4/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/63200
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
88 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810 file whoami 8164   2008-08-10 2009-01-06 01:26
 
87 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...  
86 Archive [플러그인, 소스] 사용자 대본 & 사전 플러그인 20080809(테스트버전) [2] file Hide_D 8362   2008-08-09 2008-08-10 00:02
 
85 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...  
84 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 8067   2008-08-09 2009-01-06 01:26
 
83 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807_2 file whoami 12660   2008-08-07 2009-01-06 01:26
 
82 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807 whoami 8699   2008-08-07 2009-01-06 01:26
고급 옵션 설정시 중복되는 버그 고친 버전입니다. 이상한데.. 분명히 고친 것 같았는디... 버그가 또 발견되어 삭제합니다. http://aralgood.com/zbxe/56444 를 참조.  
81 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080806(테스트버전) [1] file Hide_D 8712   2008-08-06 2009-01-06 01:00
 
80 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 7719   2008-08-06 2009-01-06 01:00
 
79 Archive [플러그인, 소스] RLCmd 20080806 file whoami 7775   2008-08-06 2009-01-06 01:00
 
78 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080805(테스트버전) file Hide_D 7830   2008-08-04 2008-08-05 01:06
 
77 Talk 함수, 변수 작명법 잘 정리된곳 없나요; [1] Hide_D 9291   2008-08-03 2009-01-06 01:00
결국 소스로 올려야하니까 좀 정리는 해둬야겠다.. 싶어서 번역쪽은 그냥 0.2버전(캐시 초기화) + 약간의 강화로 변경  
76 Talk 현재까지 작업물 + 에러 OTL [2] file Hide_D 9891   2008-08-03 2008-08-03 21:08
 
75 OtherFiles [잡다]UTF8텍스트파일 -> Hex 출력기 file Hide_D 10613   2008-08-03 2008-08-03 16:26
 
74 Talk VS 2005로 갈아탔습니다 [1] Hide_D 8272   2008-08-03 2009-01-06 01:34
MFC, 리소스 에디터 때문에 도저히 못 버티다가 옮겼습니다. VS 2008 깔고는 그 느린 속도에 기겁했는데, 이쪽은 꽤 빠르네요. [우홋홋] 근데, 2005와 2008 차이가 뭐죠? 버전 옮길때 그냥 파일 열고 버전 숫자만 바꾸면 땡이네요[...]  
73 Talk 0.3에서 추가할것 Hide_D 7908   2008-08-03 2009-01-06 01:00
까먹을까봐 정리 사용자 사전계 1. 사용자사전 유/무 2. 범용사용자사전 유/무 3. 사용자 정의한 주소의 파일 열기(취소) 4. 탭처리 5. 검색 알고리즘 강화(보류) ezTransXP 강화계 1. 번역후 괄호 처리(다이얼로그에 추가)(보류) 2. 사용자 사전과 완벽히 분...  
72 Talk DumpText는 아직 개선이 좀 필요한듯; [3] Hide_D 8111   2008-08-03 2009-01-06 01:00
여러개를 켤 수가 없다는 단점이 있네요[...] 그나저나 질문, 헤더 파일에서 extern으로 선언하면 그 프로그램 전체에서 공유되는건가요? 그렇다면, 창은 하나만 띄우고 플러그인 로드될때마다 번호를 매겨서 옵션을 먹여야 하려나요..  
71 Talk 문자열 -> Hex 변환이 제대로 안되네요. [7] Hide_D 7561   2008-08-02 2009-01-06 01:00
LPSTR ConvertHex(LPCSTR source){ size_t Len=strlen(source); char Temp[2048]=""; BYTE szBuf[3] = { '', }; int j=0; for(size_t i=0;i<Len;i++){ szBuf[0]=(BYTE) source[i]; szBuf[1]=(BYTE) source[i+1]; if(szBuf[0]<0x80){ //1바이트 코드라면 j += ...  
70 Archive [플러그인, 소스] RLCmd 20080802 [1] file whoami 8818   2008-08-02 2009-01-06 01:00