GXP엔진 // .gxp 확장자가 많다.


//대사

8B 44 24 08 6A FF 6A 00 50

함수시작부분 인자 [esp+0x4]+0x4 / 유니코드 / 스마트후킹방식




+복구코드를 사용해야 할경우


8B 01 8B 40 5C 6A 00

처음 검색된 지점 위쪽 콜문 바로아래 // eax+4 // 유니코드 // 스마트 //  복구지점은 리턴문 위쪽 콜문



// 이름및 기타

56 8B 74 24 08 8B C6 57 8D 78 02 EB 03 8D 49 00 66 8B 10 83 C0 02 66 85 D2 75 F5

4번째 걸리는녀석 함수시작부분 인자 [esp+0x4] / 유니코드 / 포인터바꿔치기 + 백로그 이름도 번역하고싶으면 인자 추가 ebp/유니코드/스마트

// 세이브 로드화면

83 EC 38 D9 EE 57 8B 7C 24 44

함수시작부분 [esp+0x8] / 유니코드 /포인터바꿔치기 + 자체디버거에도 걸린다.



+커딕에 추가 // 루비문관련

≪    ≪
/    /
≫    ≫


+gxp 스마트후킹인데 아마도 win7 호환 안좋을듯싶다.

위치를 조금변형시켜서 복구코드로 만들어서 올려봤지만 여전히 win7 튕긴다는 댓글이 여러개보인다.



//샘플


聖エステラ学院の七人の魔女 (성 에스텔라 학원의 일곱 마녀)




cotomi엔진 // data폴더를보면 .noa 확장자가 많다.


//
CRT+N

GetTextMetricsA

첫번째 들어가서 함수시작부분

[esp+0x4] / UNICODE,PTRCHEAT

//

Serch for > All refrenced strings

bold

함수시작부분

[esp+0x4] / UNICODE,PTRCHEAT





+커딕에 추가 // 번역해도 상관은없는데 번역시 속도가 떨어진다.

개행문을 제거해야한다면 덤프로확인해서 개행문도 커딕에서 처리해주면된다



\h:\f;MS ゴシック:\s:\v:    \h:\f;MS ゴシック:\s:\v:




//샘플


러브 2Quad(らぶ2Quad )







Rio 엔진 // 확장자명에 .WAR 가있고 rio.ini 가있다면 대충

//걸린위치


89 88 60 01 00 00 33 C9


ecx//ptrcheat


+픽스


//샘플 + 엔진이 츤데레 참고


포로계약 , 虜ノ契 ~家族のために身体を差し出す姉と妹~

[GRAND CROSS] 六花プラス [Comiket 83]






YKC:Feng/HookSoft(SMEE) // 확장자명에 .YKC가많다.



//대사+이름


83 EC 10 53 8B 5C 24 1C

인자는 두군데 [eax],SAFE,PTRCHEAT // [eax+0x4],PTRCHEAT,SAFE


//기타
바이너리 서치 후 아래쪽 콜문 or 함수시작부분 


51 52 50 8B CE




//샘플

집사가 공주을 선택할 때 (執事が姫(あるじ)を選ぶとき )





Lucifen엔진 // ith로 확인하거나 whitsoft 회사꺼




이름 : CRT+N > lstrcpynA > 커널단에 들어가서 브포걸고 걸러낸다.

세이브로드 화면 : 아랄 자체디버거

선택지 :
//
CRT+N > lstrcpyA > 커널단에 들어가서 브포걸고 역추적한다.
//
바이너리 서치


C2 24 00 90 90 90 90 83 EC 08 53 55 56 8B F1 57


(55) 리턴아래 함수시작위치 인자 [esp+0x8]

대사
//
CRT+N > GetGlyphOutlinA > 두군데 걸리는데 브포걸고 역추적한다.
//
바이너리 서치


85 C0 0F 95 C3 8B 45 EC 80 38 00


(55) 함수시작부분 인자는 F8로 진행시켜보면 알수있다.
+ 개행후 널문자가 들어가기때문에 약간의 수정을 해줘야한다.

함수시작부분 약간 아래에 보면
MOV EAX,DWORD PTR FS:[0]
요러한 명령문이있다 저기서 콜문으로 하단으로 땡기자



0051C7FC  /$  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0051C802  |.  60            PUSHAD
0051C803  |.  8B91 B4030000 MOV EDX,DWORD PTR DS:[ECX+3B4]
0051C809  |.  8BF2          MOV ESI,EDX
0051C80B  |>  803A 00       /CMP BYTE PTR DS:[EDX],0
0051C80E  |.  74 03         |JE SHORT UNMEI_GA.0051C813
0051C810  |.  42            |INC EDX
0051C811  |.^ EB F8         |JMP SHORT UNMEI_GA.0051C80B
0051C813  |>  66:813A 005B  |CMP WORD PTR DS:[EDX],5B00
0051C818  |.  75 1A         |JNZ SHORT UNMEI_GA.0051C834
0051C81A  |.  C602 0A       |MOV BYTE PTR DS:[EDX],0A
0051C81D  |.  42            |INC EDX
0051C81E  |.  42            |INC EDX
0051C81F  |.  8B02          |MOV EAX,DWORD PTR DS:[EDX]
0051C821  |>  803A 00       |/CMP BYTE PTR DS:[EDX],0
0051C824  |.  75 03         ||JNZ SHORT UNMEI_GA.0051C829
0051C826  |.  C602 0A       ||MOV BYTE PTR DS:[EDX],0A
0051C829  |>  42            ||INC EDX
0051C82A  |.  48            ||DEC EAX
0051C82B  |.  85C0          ||TEST EAX,EAX
0051C82D  |.^ 75 F2         |\JNZ SHORT UNMEI_GA.0051C821
0051C82F  |.  803A 00       |CMP BYTE PTR DS:[EDX],0
0051C832  |.^ 75 D7         \JNZ SHORT UNMEI_GA.0051C80B
0051C834  |>  E8 08000000   CALL UNMEI_GA.0051C841
0051C839  |.  61            POPAD
0051C83A  \.  C3            RETN
0051C83B      90            NOP
0051C83C      90            NOP
0051C83D      90            NOP
0051C83E      90            NOP
0051C83F      90            NOP
0051C840      90            NOP
0051C841  /$  8BB1 B4030000 MOV ESI,DWORD PTR DS:[ECX+3B4]
0051C847  |>  803E 0A       /CMP BYTE PTR DS:[ESI],0A
0051C84A  |.  75 03         |JNZ SHORT UNMEI_GA.0051C84F
0051C84C  |.  C606 00       |MOV BYTE PTR DS:[ESI],0
0051C84F  |>  46            |INC ESI
0051C850  |.  803E 00       |CMP BYTE PTR DS:[ESI],0
0051C853  |.^ 75 F2         \JNZ SHORT UNMEI_GA.0051C847
0051C855  \.  C3            RETN



51C803 주소와 51C841 주소에서 대사주소를 레지에 옮겨서 작업하는건데 요부분만 수정해주면 될듯하다.
후킹위치는 51C834 인자는 [ECX+0X3B4] < 요부분은 아마 변동될테니 수정

//수정문내용

널문자뒤에 [ (5B) 가있을경우 개행문처리가 되는문인데
여기서 5B 뒤에 있는 HEX값이 다음대사 위치를 가르킨다. 중간의 공백을 0A로 채워넣고 번역후 0A를 다시 널문자로 만드는 수정문이다.

바이너리

64 A1 00 00 00 00 60 8B 91 B4 03 00 00 8B F2 80 3A 00 74 03 42 EB F8 66 81 3A 00 5B 75 1A C6 02
0A 42 42 8B 02 80 3A 00 75 03 C6 02 0A 42 48 85 C0 75 F2 80 3A 00 75 D7 E8 08 00 00 00 61 C3 90
90 90 90 90 90 8B B1 B4 03 00 00 80 3E 0A 75 03 C6 06 00 46 80 3E 00 75 F2 C3



일부채도값으로 01 A9 A9 A9 가 쓰이는데 A9는 한글 상위바이트에 행당하는 HEX값이라 일본어문자셋 변환체크시 한글로 인식되어버려서
채도가약간 망가지는 현상이있다. 요건 그냥 패스...



//샘플 + 수정된 실행파일이 첨부되있으니 그거 봐보면될듯


運命が君の親を選ぶ 君の友人は君が選ぶ (운명이 너의 부모를 선택 네 친구는 네가 선택)





エスクード , Escu:de , Escude  // 회사명



//


8B 00 83 C0 28


함수시작부분 // [[esp+0x4]+0x20] // PTRCHEAT // SAFE


+폰트변경 // 폰트로드바 안먹히면

configure.exe < 실행해서 폰트를 MS고딕이나 명조로 변경해주면 된다.

+개행관련 픽스라인 필터사용해야할듯싶다.

<r> 제거


//샘플

히메고토 마스 카레이 ~ 아가씨들의 장난 ~ , ヒメゴト・マスカレイド ~お嬢様たちの戯れ~




Malie 엔진 // 실행파일명을 보거나 대체적으로 Light 회사꺼





//대사

8B 53 08 8B 48 04 8B 18 8B C1 8B 72 10 83 C4 08 03 F3 C1 E9 02 F3 A5 8B C8 83 E1 03 F3 A4 5F 5E 5D 5B 83 C4 08

POP EDI (5F) // [esp+0x24] // 유니코드 // overwirte + ignore


//이름 + 말풍선 인젝션 끝난후를 잡아줌

83 C4 04 83 E8 00

첫번째 걸리는놈 아래콜문(E8) // EDI // 유니코드 // overwirte + ignore

//선택지

81 EC 04 02 00 00 53 55 56 8B B4 24 18 02 00 00 57 8D 44 24 14 50 56

걸린위치 // [ESP+0X8] // 유니코드  // ptrcheat

OR

search for > all referenced text strings

add select

//참고 게시글

light사(추가)

malie 엔진도 추가해주세요.




기본적으로 대사스크립트를 메모리에 올려놓고 쓰기때문에 맵서치하면 된다.

널문자와 특문이 있어서 수정 dll을 사용해줘야한다.


+설정에서 폰트변경이 없을때.

reg 검색해서 FontFace=Gulim 으로 수정해주면된다.


//샘플 + 해당게시글에 있는 ATCode_Maile.dll 이 거의 최종버전 + Maile.ini 파일 수정사항도 눈여겨보자


[여성향 오토메게임] 절대미궁그림 PC판





ソフトハウスキャラ , SOFTHOUSE CHARA , 소프트하우스 캬라 // 회사명





//메인 실행파일에서

search for > All referenced text strings > MessageWnd 


함수시작부분 [esp+4] // 유니코드 // overwrite + ignore

//기타 ags dll 에서

crt+n

pgsvtd._pgsvtdl_createpiecetextfull@28


검색해서 이동해보면 아래와 같다.

주소는 분홍색음영지점 // 인자는 [ESP] // ptrcheat 아니면 overwirte + ignore // 유니코드

+당연히 dll 후킹이니상대주소 넣어줘야겠죠.


1001D35D  |.  8B4424 20     MOV EAX,DWORD PTR SS:[ESP+20]
1001D361  |.  50            PUSH EAX
1001D362  |.  83F9 01       CMP ECX,1
1001D365  |.  8B4C24 2C     MOV ECX,DWORD PTR SS:[ESP+2C]
1001D369  |.  51            PUSH ECX
1001D36A  |.  56            PUSH ESI
1001D36B  |.  75 08         JNZ SHORT Ags5.1001D375
1001D36D  |.  FF15 E0A30510 CALL DWORD PTR DS:[<&PgsvTd._PGSVTDL_Cre>;  PgsvTd._PGSVTDL_CreateTextFull@28
1001D373  |.  EB 06         JMP SHORT Ags5.1001D37B
1001D375  |>  FF15 40A40510 CALL DWORD PTR DS:[<&PgsvTd._PGSVTDL_Cre>;  PgsvTd._PGSVTDL_CreatePieceTextFull@28
1001D37B  |>  8947 3C       MOV DWORD PTR DS:[EDI+3C],EAX
1001D37E  |.  85C0          TEST EAX,EAX




//b코드 + 반각 뛰어쓰기


00412849   PUSH Bunny3.00499004                      UNICODE "%s.aog"
00412897   PUSH Bunny3.00499038                      UNICODE " voice"
004128E8   PUSH Bunny3.00498FE0                      UNICODE "|"
00412913   PUSH Bunny3.00498FE0                      UNICODE "|"
0041291F   PUSH Bunny3.00497F80                      UNICODE "[f9S30e0u]"
004129AE   PUSH Bunny3.00498FEC                      UNICODE "MessageWnd"
00412A05   PUSH Bunny3.00499004                      UNICODE "%s.aog"

메인문을 잡을때 search for > All referenced text strings > MessageWnd 실행시 해당문 위에 보면

파란색 음영이 주소가 된다.

들어갈 헥스값은 덤프창에서 유니코드형으로 넣어서 쓴다음 뒤에 널문자좀 추가해서 긁어서 복사하면된다.


ex [S30e3r48] //파란색 테두리 ('ω')


{00497f80(5b00530033003000650033007200340038005d0000)}


+r48 자동개행을하고 %0A 제거 해봤는데 백로그에서 약간 꼬이는문이있는것같다.

+픽스에서 개행조절하는게 나을듯하다. 샘플 게시글 픽스라인 쓰면될듯싶다.


//참고 게시글 + 게시글내용 잘보면서 이것 저것 건들어보자~

소프트하우스 캬라 전각 띄어쓰기


//샘플

[1.1패치]문을 지키는 일 門を守るお仕事

문을 지키는 일 門を守るお仕事






Stuff 엔진 // .mpk 확장자가 많다. 대부분 propeller 회사꺼




//메인

6A 01 56 55 8B CB

아래콜문    ecx


//이름

53 50 8D 44 24 44

아래콜문 ebx

or

serach for > all renfernced text strings >

%s%s%s

검색해서 두개 연달아있는곳에서 두번째놈 아래 콜문


+ 위 검색지점 아래에 보면 조금 큰 함수하나가 보일텐데 거기가 보이스 매칭하는곳 
// 여기를 후킹해주면 따로 픽스 이름 【】미번역처리 안해도 된다. 다만 아랄후킹시 멈추는 경우도 있더라.


//선택지

serach for > all renfernced text strings >

%s_r

검색해서 위쪽 콜문 바로 아래지점 ebx




+디버거로 확인시에는 괜찮으나 아랄로 후킹시 멈춰버리는 지역이 다소있으니 그곳은 피해줘야한다. (함수넘어오기 전지역이라든가로)
+픽스라인으로 、 미번역처리해줘야 백로그 정상출력된다.
+픽스라인으로 【】 미번역처리 처리한다음 이름부분만 따로 처리해주는게 좋다.


//샘플

도쿄바벨 東京バベル

벚꽃의 틈새와 거짓말의 도시 すきま桜とうその都会





Yatagarasu // 회사명


2012년도작 기준이다.


serach for > all renfernced text strings >


<C#%s>


검색된지점 함수시작부분 // [ESP+0x4] // ptrcheat




Mink EGO // 회사명


2013년도 6월 신작을 보니 쉽게변했다.



//메인

Search for > All referenced text strings


CMSGMGR::RegistLog


위쪽에 있는 lstrcpyA 콜문 두군데 후킹위치 // [esp+0x4] // overwrite + ignore // Source

//기타1

CRT+B

8D 44 01 10 99

함수시작 위치 인자는 두개 // [ESP+0XC] // [ESP+0X10] // ptrcheat

//기타2

CRT+B

6A 00 6A 00 6A 00 6A 00 6A 00

CRT+L 로 계속 내려서 마지막에 걸리는놈

함수시작위치 // [ESP+0X10] // ptrcheat



+위 방식으로 검색이 안될때 lstrcpyA 와 lstrlenA 함수에 브포걸고 전후로 추적하면된다.
간단하게 AGTH /x 옵션으로 게임을 후킹해서 우선적으로 판별해서 위치를 좁힌다음 전후로 추적하는게 용이할수도있다.


+간단하게 한방위치도 있긴한데 보이스 출력시 튕기는듯 해서 버렸다. 검색이 용이치 않을때 참고용도로만 사용하자.

CRT+B

8B 8D 40 FF FF FF 83 C1 0C

함수시작위치 // [ESP+0XC]


+픽스에서 아래 두문자는 미번역처리 // 하트 그림과 음표그림출력 명령문이다
ω


//샘플

의매니까 할 수 있는 것 , 여동생이 아니면 안 되는 것.(義妹だからできること、妹じゃないとダメなこと。)




Little Witch + TENCO // 회사명




//자폰회피

serach for > all renfernced text strings >

System/Font

검색해서  아래와같은 참조문 사이에 분기문을 수정해주면된다.


TENCO

System/Font.txt
분기문 > jmp 로 수정
System/Font.txt

Little Witch

System/Font.def
분기문 > jmp 로 수정
System/Font.def


//

85 D2 76 08 89

첫번째 걸리는지역이 메인
두번째 걸리는지역이 백로그 // 필요없음
세번째 걸리는지역이 필드대사(대사창이 아닌 전체화면에에 대사출력할때)


+인자는 변동이니 진행시켜보면 대사가 눈에 보일때가 있을테니 거기서 계산해서 함수시작부분을 후킹해주면된다.


//
대본파일을 메모리에 올려놓고 돌리는방식이기 때문에 메모리서치해서 브포걸고 쫓아디면 된다.
대사수집은 lstrenA 이나 Cretefonta 함수에 브포걸고 지나간 스택을 봐보면 눈에 보이니 수집하면 될듯싶다.

혹은 자폰회피후 아랄자체디버거로 검색해보면 잡히는곳이있는데 해당함수에 가보면 Arg로 00000 값이 있는 콜문에 브포걸고 보면된다.
때 바로 보이는 대사는 이미 사용이 끝난거고 잘봐보면 콜로 들어간곳에서 사용하는 메모리가있을테니 해당 인자를 사용해주면된다.


스마트후킹방식을 사용하기때문에 눈에 잘 안보일수가있다.


//샘플 + 루비문출력시 튕길수있으니 픽스 참고하자.

영웅전희1.05(英雄*戦姫)






HorkEye 엔진 //




//대사

8D 0C 00 56 33 ED


바이너리 검색해서 걸리는곳 함수시작부분 // 인자 [esp+0x4] 방식 PTRCHEAT

//이름+선택지

6A 00 6A 01 8D 14 4E

걸리는곳 위쪽 콜문 바로 아래 // 인자 eax // ptrcheat

or

CRT+F

LEA EDX,DWORD PTR DS:[ESI+ECX*2]

두번째 걸리는놈 //



+AralGotic 폰트사용
+백로그 문제있음
+픽스필수
// 80 문자 출력제한인듯하다. 20 같은 1바이트도 1문자로 계산되어서 바이트제한으로는 완벽히 튕김방지가힘들다.
// 1to2 + 픽스 제한 하면 되긴하지만 특문예외처리와 반각 공백문자 버리기가 아깝더라는...



//샘플

연애 황제 of LOVE! (らぶおぶ恋愛皇帝 of LOVE!)

츠치도씨의 순애로드 , 辻堂さんの純愛ロード






candy soft // 회사명 .fpk 확장자가 많다.

.fpk를 사용하는 다른 엔진이 하나 더있으니 유의

회사명으로 확인하는게 가장 나을듯싶다.





2013년도

//메인 //라인단위 후킹
55 8B EC 83 EC 24 89 4D DC 8B 45 08 50

함수시작부분 [esp+0x4]

//선택지

8B 45 08 8B 48 08 03 4D DC 51

아래두번째 콜문 [esp]


//백로그

33 C5 50 8D 45 F4 64 A3 00 00 00 00 89 4D AC 8D 4D C0

함수시작부분





//합쳐진 문장 후킹할려면


search for > all referenced text strings
[TEXT]
두번째꺼 위를보면

아래와같이 라인단위로 불러들인것을 공백추가로 합치는 지역이 있다.


//저기서 파란색이 후킹위치

//인자는 ecx값에 Add 형식으로 변경해서 사용한다. add 값은 쉽게 메인 후킹지역이나 백로그지역보면 add ecx,xxx 값을 알수있다.


+JGE 분기문을 JG 분기문으로 수정해줘야 3줄짜리(공백문 추가가 필요없는 문)도 해당 위치에서 번역된다.



00504B98  CALL anebu-HT.00777E70
00504B9D  PUSH EAX
00504B9E  MOV ECX,anebu-HT.0C50895C
00504BA3  CALL anebu-HT.00779B50
00504BA8  JMP anebu-HT.005048B4
00504BAD  MOV ECX,DWORD PTR SS:[EBP+8]
00504BB0  MOV EDX,DWORD PTR DS:[ECX+C]
00504BB3  MOV DWORD PTR SS:[EBP-3C],EDX
00504BB6  JMP SHORT anebu-HT.00504BC1
00504BB8  MOV EAX,DWORD PTR SS:[EBP-3C]
00504BBB  ADD EAX,1
00504BBE  MOV DWORD PTR SS:[EBP-3C],EAX
00504BC1  MOV ECX,DWORD PTR SS:[EBP-3C]
00504BC4  CMP ECX,DWORD PTR SS:[EBP-10]
00504BC7  JGE SHORT anebu-HT.00504BF7
00504BC9  LEA ECX,DWORD PTR SS:[EBP-38]
00504BCC  CALL anebu-HT.00777C00
00504BD1  PUSH anebu-HT.0094C8C4                 
00504BD6  LEA ECX,DWORD PTR SS:[EBP-38]
00504BD9  CALL anebu-HT.00779B50
00504BDE  LEA ECX,DWORD PTR SS:[EBP-38]
00504BE1  CALL anebu-HT.00779F00
00504BE6  PUSH EAX
00504BE7  MOV ECX,DWORD PTR SS:[EBP-54]
00504BEA  ADD ECX,183E58
00504BF0  CALL anebu-HT.0040451B
00504BF5  JMP SHORT anebu-HT.00504BB8
00504BF7  CMP DWORD PTR DS:[D2C334],0
00504BFE  JE SHORT anebu-HT.00504C42
00504C00  PUSH 1
00504C02  MOV ECX,anebu-HT.0565A03C               
00504C07  CALL anebu-HT.00402A09
00504C0C  PUSH EAX
00504C0D  MOV ECX,anebu-HT.00D304A0
00504C12  CALL anebu-HT.00401F7D
00504C17  TEST EAX,EAX
00504C19  JE SHORT anebu-HT.00504C30
00504C1B  PUSH FFC8C8C8
00504C20  MOV ECX,DWORD PTR SS:[EBP-54]
00504C23  ADD ECX,183E58
00504C29  CALL anebu-HT.00404D5E
00504C2E  JMP SHORT anebu-HT.00504C40
00504C30  PUSH -1
00504C32  MOV ECX,DWORD PTR SS:[EBP-54]
00504C35  ADD ECX,183E58





+1to2 체크
+AralGotic 폰트사용


2012년도

//메인 후킹지점    //인자 : [esi+0x4]

8B 56 04 C6 04 17 00 8B 46 04 83 C4 0C 50

바이너리 검색 후 아래 콜문


// 컨피그1     //인자 : ECX

83 EC 18 8B CC C7 45 FC 00 00 00 00 89 65 E8 51 8B CE

바이너리 검색 후 아래 콜문


// 컨피그2    //인자 : edi-0x0a*4

F3 A5 53 B9 32 00 00 00

바이너리 검색 후 아래 콜문



__________________________

야매가 안되서 처음부터 할때

//메인후킹지점

CRT+N lstren 함수 검색해서 브포거 죄다 걸면
두군데에서 대사흐르는 걸 볼수있다.
두군데중 함수가 큰놈 > 아래에 있는 놈

//컨피그1


세이브나 로드 화면 한번 들어갔다가 나와서

일본어로 세이브( 835A 815B 8375 ) 메모리 검색
단방에는 안된다 좀 돌아보다 보면 모든 문장이
지나가는곳을 찾을수있다. 기거서 콜스택으로 올라타자


//컨피그2

세이브나 로드 화면 한번 들어갔다가 나와서

메모리검색 하면 리소스데이터 영역에서 걸리는 녀석이있음 이놈을 브포 그러면 REP 명령문에 걸림
요기서 아래 콜문 인자값은 대충 거기서 보고 맞추자


//샘플

사랑도 H도 공부도, 맡겨줘! 언니(누나) 부 (恋もHもお勉強も、おまかせ!お姉ちゃん部)

츠요키스 3학기 Full Edition (つよきす3学期 Full Edition)

카미데레 かみデレ

건나이트걸 , ガンナイトガール





NeXAS 엔진 그냥 GIGA // 대부분 戯画(기가) + 마지코이 시리즈




//우선적으로 아랄자체디버거를 키고 컨피그에 들어가서 걸리는곳을 적용해본다.

//메인 + 복구주소를 사용해야할경우 리턴문

64 A1 00 00 00 00 50 64 89 25 00 00 00 00 81 EC 98 01 00 00

앞쪽에 55 즉 함수시작부분 // 인자 [esp+0xc] // 후킹방식 smart

//뒷문

64 A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 38 53 56 57 8B F9

앞쪽에 55 즉 함수시작부분 // 인자 [esp+0x4] // 후킹방식 smart + ptrbackup


+ 복구주소를 사용해야할경우(Win7) //특징적인 좌표가 없다 -0-;;

위 주소에서 콜로보내는지역 두번거슬러 올라가서 // 콜문후킹 /복구 5// 인자 esi

or


85 C0 0F 95 C0 0F B6 C8 51 8B D6 52


바이너리서치 / 첫번째 걸린지점에서 거슬러 위쪽으로 올라가보면 jmp/call/jmp 이렇게 명령문이 붙어있는곳 위쪽 콜문

//위치는 위 복구주소위치와 같은지점이다.



//샘플

마지코이A-2 , 真剣で私に恋しなさい!A-2