
çããã®å€ãã¯ãããªãã®äººçã§å°ãªããšãäžåºŠã¯ãæ°ã«å
¥ãã®ã³ã³ãã¥ãŒã¿ãŒã²ãŒã ã倿Žããããšã«é¢äžããŠãããšæããŸãã ããã«ã¯ããªãœãŒã¹ã®ç·šéïŒäŸïŒ
GTAã®ãã£ã©ã¯ã¿ãŒã¢ãã«ãšãªããžã§ã¯ãïŒãããŸããŸãªã¹ã¯ãªããã®äœæïŒäŸïŒ
DFHackã䜿çšããŠ
èµ·åããã
Dwarf Fortressã®ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ãŒïŒããŸãã¯
Minecraft Forgeãå®è¡ããŠãã
MinecraftãµãŒããŒã®
modã®éçºããããŸãã
å€ãã®å Žåãã²ãŒã éçºè
ã¯æ©èœãæ¡åŒµããããã®å
¬åŒAPIãæäŸãããé¢é£ããã³ãã¥ããã£ã«ç¬èªã®ã¢ã€ãã¢ãèŠæãæ®ããŸãã
ããæ©ã
UnReal World ïŒä»¥é
-URWïŒãšåŒã°ããç§ã®ãæ°ã«å
¥ãã®ã²ãŒã ã®1ã€ã«åº§ã£ãŠãç§ã¯åã³ä¿¡ããããªãã»ã©äžå¿«ãªè¡åã«ééããŸããã å€ããå°ãªãã匷åãªæµã«åºäŒããšããã»ãšãã©ãã¹ãŠã®ãã¬ã€ã€ãŒã®èªç¶ãªæ¬²æ±ã¯ã圌ãçŸæç¹ã§éæãããã¹ãŠã倱ããªãããã«å³åº§ã«çãæ®ãããšã§ãïŒã¯ããäžéšã¯ãã®ãç¡äœæ³ã/ãããŒãããªã©ãèæ
®ããŸããã圌ãã¯å¥œã¿ã«ã€ããŠè°è«ããŸããïŒ ã åé¡ã¯ãURWã§ã®è¿
éãªä¿åãšèªã¿èŸŒã¿ãåã«æ©èœããªãããšã§ãã ãã£ã©ã¯ã¿ãŒãä¿åãããšãèªåçã«ã¡ã€ã³ã¡ãã¥ãŒã«æ»ããä¿åããã«çµäºããŠåã®ã»ãŒããã€ã³ãã«æ»ããšã
taskmgrãä»ããŠã®ã¿ã²ãŒã ã
匷å¶çµäºã§ããŸãã ãã®çµæãã»ãšãã©ã®å Žåãã²ãŒã ã®åŸåã®æ®µéã§ã®è€éãªæŠãïŒé·ãéèç©ããŠãããã®ãã¹ãŠã倱ãã®ãæ¬åœã«æ®å¿µãªãšãïŒã¯ãã¯ã¬ã€ãžãŒãªçµã¿åãããšèšæ¶ãããããŒããŒãã·ã§ãŒãã«ããã§çµãããŸããã
ãããŠãç§ã¯èããŸããã ãŸããç¬èªã®ã¯ã€ãã¯ããŠã³ããŒãããã³ä¿åã¡ãã¥ãŒã远å ã§ããªãã®ã¯ãªãã§ããïŒ ãããã¬ãŒããšãã£ã¿ãŒãããã³PEãã¡ã€ã«ã¢ãã©ã€ã¶ãŒãè£
åããŠãäœæ¥ãéå§ããŸããã
ããã»ã¹ãã©ã®ããã«é²ã¿ãã©ã®ããã«ãªã£ãã®ããã«ããã®äžã§èªãã§ãã ããïŒæ
éã«ã
å€ãã®ã¹ã¯ãªãŒã³ã·ã§ãã ïŒã ãã®èšäºãèªãåã«ã以åã®èšäºãããçè§£ããŠããããšã匷ããå§ãããŸãã ããã§ã¯çç¥ãããŠããç¹ã®ããã€ãããã§ã«èª¬æããŠããŸãã
ã²ãŒã èªäœã«ã€ããŠã®ããã€ãã®èšèã UnReal Worldã¯ããã£ã³ã©ã³ãã®2人ã®éçºè
ã«ãã£ãŠ1992幎ããéçºãããã³ã³ãã¥ãŒã¿ãŒã²ãŒã ã§ãããçŸåšãéçºãç¶ããããŠããŸãã ãã®ã²ãŒã ã¯
ããŒã°ã©ã€ã¯ã®ãžã£ã³ã«ã®ä»£è¡šã§ãããéåšæä»£åŸæã®åéšã®éšæã®ç掻ã«é£ã³èŸŒãããšãã§ããŸãã å·çæç¹ã§ã¯ãURWã¯å®å
šã«ç¡æã§ãïŒãã ããããã¯åžžã«ããã§ãããšã¯éããŸããã§ããïŒããããããµã€ãºã®å¯ä»ã«å¯ŸããŠãã²ãŒã ã®äœè
ã«ããæè¬ã®ãããªãå±ããŸããäžå®ä»¥äžã®éé¡ãæ¯æããšãããããè³éãããããŸãã ã©ã€ãã¿ã€ã ã¡ã³ããŒã·ãããããã«ãããããŒã¿ãªãªãŒã¹ããã®ä»ã®ç¹å
žããããã©ãŒã©ã ã®é衚瀺ã»ã¯ã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããŸãã äžè¬çã«ãã²ãŒã ã¯æ¬åœã«ãã¬ã€ãã䟡å€ããããŸãã
åã®èšäºãæ³šææ·±ãèªãã ãããããããã€ããªã®ç ç©¶ãã©ãããå§ãããããã§ã«ç¥ã£ãŠããã§ãããã 確ãã«ã
DiEããã³
PEiDãŠãŒãã£ãªãã£ã«ããurw.exeå®è¡å¯èœãã¡ã€ã«ã®åæããïŒ


ããã«ãŒãšãããžã§ã¯ã¿ãŒã¯å ±åãããŠããŸããã§ããããããã«é¢é£ããŠãä»åã¯äœãæ®åœ±ããå¿
èŠããªããšèããããŸãã
次ã«ã
ASLRãã¯ãããžãŒã®äœ¿çšãã¹ãã«ç§»ããŸãããã urw.exeã
PE Toolsã«ããŒãããããªãã·ã§ã³ããããŒããã¿ã³ãã¯ãªãã¯ããŠã以åã®èšäº-0x8140ã§æ¢ã«ããªãã¿ã®ãDLLãã©ã°ããªãã·ã§ã³ã®å€ã確èªããŸãã

ããã0x8100ã«å€æŽãïŒããã¯ãããšãã°
ããã§èª¬æãããŠããçç±
ã§ã ïŒã2ã€ã®ãOkããã¿ã³ãã¯ãªãã¯ããŠãImage Baseãšåãã¢ãã¬ã¹ïŒãã®å Žåã¯
0x00400000 ïŒã«æ¯åå®è¡å¯èœãã¡ã€ã«ã匷å¶çã«ããŒãããŸãã
urw.exeã
OllyDbgã«ããŒãããæé ã
æ€èšããŸãã
- ãã£ã©ã¯ã¿ãŒã®ããŒãæé ãèŠã€ããŠããããšå¯Ÿè©±ããæ¹æ³ãèŠã€ããŸã
- ãã£ã©ã¯ã¿ãŒãä¿åããæé ãèŠã€ããŠããã£ã©ã¯ã¿ãŒãšããåãããæ¹æ³ãèŠã€ããŠãã ãã
- ãQuick save-loadãã¡ãã¥ãŒã®éå§ã空ããŠãããããããŒã«å²ãåœãŠãŠæç»ããŸã
æåã®æ®µèœããå§ããŸãããã
ãã£ã©ã¯ã¿ãŒãäœæããŠä¿åããã¡ã€ã³ã¡ãã¥ãŒã«ç§»åããŠãããŒãã詊ã¿ãŸãã ãLoadingïŒ
character_nameïŒ
ããšããã¡ãã»ãŒãžã«æ³šæãåããå¿
èŠããããŸãã

éã¢ã»ã³ãã«ããããªã¹ãã§ãã®è¡ãžã®åç
§ãèŠã€ããŸãããã

ããã«éåžžã«äŒŒãŠããŸãïŒ äŒæ©ãå
¥ããŠãã¡ã€ã³ã¡ãã¥ãŒã«ç§»åãããã£ã©ã¯ã¿ãŒãå床èªã¿èŸŒã¿ãŸãã

ãã®ããã·ãŒãžã£å
šäœããã£ã©ã¯ã¿ãŒã®èªã¿èŸŒã¿ãæ
åœããŠãããšä»®å®ãããšãã³ãŒã«ã¹ã¿ãã¯ã®ãããŠã£ã³ããŠã䜿çšããŠãã®ã³ãŒã«ã«ãžã£ã³ãããŸã

ãããŠãæããã«ã圌女ã¯ä»äºã«ãç°å¢ããå¿
èŠãšããªãããšãããããŸãã

2çªç®ã®ãã€ã³ã-ãã£ã©ã¯ã¿ãŒãä¿åããæé ã®æ€çŽ¢ã«é²ã¿ãŸãããã
æé ã¯ãååãšããŠãåã®æé ãšåæ§ã§ãã æåã«ããã£ã©ã¯ã¿ãŒãä¿åããããšãã«äœãèµ·ããããèŠãŠããã®å Žåã²ãŒã ã¯å¯Ÿå¿ããã¡ãã»ãŒãžãæžã蟌ããšããäºå®ã«æ³šæãæããŸãïŒ

ããã§ãurwã¢ãžã¥ãŒã«ã®ãåç
§ããã¹ãæååãã§æååãSaving your character ...ããæ¢ããŠããŸãã

ãã®è¡ãåç
§ããæç€ºã«å
èš³ãä»ããŠããã£ã©ã¯ã¿ãŒã®ä¿åãå床詊ã¿ãŸãã

次ã«ãçŸåšã®ããã·ãŒãžã£ã³ãŒã«ã®å Žæã«ãžã£ã³ãããŸã

ãç°å¢ããèŠãŠãã ããïŒ

ã芧ã®ãšãããæåä¿åããã·ãŒãžã£ãåŒã³åºãåã«ãåŒæ°ã§ããå¯èœæ§ãæãé«ãæ°å€1ãã¹ã¿ãã¯ã«ããã·ã¥ãããŸãã ããã·ãŒãžã£ã®æ¬äœãèŠããšãå®éã«ããã€ãã®å Žæã§
EBP + 8ã®åŒã³åºãã衚瀺ãããŸãïŒ
EBPã¢ãã¬ã¹ã¯
EBPã¬ãžã¹ã¿ã®å€ãå€ã§ã
EBP + 4ã¯çŸåšã®ããã·ãŒãžã£ãå®äºããåŸã«
EBPã¢ãã¬ã¹ããå¶åŸ¡ãç§»ãã¹ãåœä»€ã®ã¢ãã¬ã¹ã§ãïŒ
+8åã®åŒæ°ãéå§ãããŸãïŒãã¡ãããååšããå ŽåããããŠååãšããŠãããŒã«ã«å€æ°ã¯è² ã®ãªãã»ããã«ãããŸãïŒã


ç°¡åã«èŠããšããã®åŒæ°ã®å€ãããŠã³ããŒãã®éå§ãšçµäºã«é¢ããã¡ãã»ãŒãžã衚瀺ããå¿
èŠãããããšãæšæž¬ã§ããŸãã
åæ§ã«ããã£ã©ã¯ã¿ãŒãä¿åããããã·ãŒãžã£ã®åŒã³åºãã®çŽåŸã«ç¶ãåœä»€
ADD ESP 4ã«æ³šæãæãããšãéèŠã§ãã ããã·ãŒãžã£ã®åŒæ°ïŒãã®å Žåã¯1ã€ã ãïŒã«ãã£ãŠå æãããŠããã¹ã¿ãã¯äžã®å Žæããã¯ãªãŒã³ãã«ããŸãã ã¹ã¿ãã¯ã®ãã¯ãªãŒã³ã¢ããããå®è¡ããå¿
èŠã®ãããããã¯ã«é¢ããèŠä»¶ã¯ãããŸããŸãª
åŒã³åºãèŠçŽã«ãã£ãŠæ±ºå®ãããŸãã
ããã§ãã²ãŒã ã¯ãŒã«ãã®ããŒããšä¿åã®æé ãçè§£ããã®ã§ã次ã®ã¹ãããã«é²ã¿ãŸãããã空ããŠãããããããŒãèŠã€ããŠã¡ãã¥ãŒãæç»ããŸãã
幞ããªããšã«ã以åã®ããŒãžã§ã³ã®ã²ãŒã ã§ã¯ããæ¡åŒµããŒã ãã®ã¡ãã¥ãŒã¯ãã«ããã¢ãŠããã§ãããããã¯ã以åã¯ãïŒãæåãå
¥åããŠåŒã³åºãããŠããŸããã ããã§ãã¢ã¯ãã£ãåããããšãããšãã²ãŒã ã«æ¬¡ã®ã¡ãã»ãŒãžã衚瀺ãããŸãã

ããããé©çšããã®ã«çæ³çãªå Žæã¯äœã§ããïŒ
ãæ¡åŒµã³ãã³ãã¡ãã¥ãŒãåé€ãããŸããããšããè¡ãžã®åç
§ãæ¢ããŠããŸã

ãã®ãã¡ã®1ã€ã«ãžã£ã³ãããŸãã

æé ã®å
é ãå·Šã¯ãªãã¯ããCtrl-RãæŒããŠãåŒã³åºãå
ã®å ŽæãèŠã€ããŸãã

ããã§ããããã®ãããªé
åã¯1ã€ã ãã§ãã ç§ãã¡ã¯ããã«é£ã³ä¹ã£ãŠãã¹ã€ãããããã¯ã®ã±ãŒã¹ã®1ã€ã§èªåèªèº«ãèŠã€ããŸãïŒ

ããŠãããããå®è£
ããå ŽæãèŠã€ããŸããã ã§ã¯ãã¯ã€ãã¯ããŒããšä¿åã¡ãã¥ãŒãã©ã®ããã«æç»ããããèããŠã¿ãŸãããã
åœç¶ããã®ã¡ãã¥ãŒã¯ãé£ãã¡ãã¥ãŒãªã©ã§è¡ãããŠããããã«ãã²ãŒã ã®æ®ãã®ããžã¥ã¢ã«ã³ã³ããŒãã³ãã«åãŸãå¿
èŠããããŸãã

é£ããªãã·ã§ã³ã®è¡ã«ã¯ããããå€ãããã®ã§ãããããååŸããããã®åç
§ãèŠã€ããŠã¿ãŸãããã

æå®ãããåœä»€ã«ãžã£ã³ãããŠãcase'ovã®1ã€ã«å
¥ããŸãã

äŒæ©ãå
¥ããŠããé£ããã¡ãã¥ãŒãéããã©ãããåŒã³åºããããã確èªããŸãã


ãã®æé ã®æåã«äŒæ©ãå
¥ããŠãOlyDbgã§F9ãæŒããŠãããäžåºŠé£ãã¡ãã¥ãŒãã¢ã¯ãã£ãã«ããŸãã ã¹ããããã€ã¹ããããããã°ã®çµæãããã·ãŒãžã£
0x004FC530ãæ¢ã«ç¢ºèªããã¹ã€ãããããã¯ããæ¬¡ã®ã¡ãã¥ãŒé
ç®ã®ããã¹ããååŸãã
0x004BEF10ã«ããããã·ãŒãžã£ãã¡ãã¥ãŒé
ç®ãã¬ã³ããªã³ã°ããããšã
æ³å®ããŠããŸãã


Arg1ã¯ã察å¿ããã¡ãã¥ãŒé
ç®ãéžæããããã«å
¥åããå¿
èŠãããæåã®ASCIIã³ãŒãã瀺ããArg2ã¯ãã®ååãæ
åœããŸãã
ã¡ãã¥ãŒã¿ã€ãã«ãåŒæ°ãšããŠåãããã·ãŒãžã£
0x004BF3B0㯠ããã®ååã§ã¡ãã¥ãŒãã¬ã³ããªã³ã°ãã圹å²ãæãããŸãã ãŸããäœããã®çç±ã§ããã®ããã·ãŒãžã£ãåŒã³åºãåã«
0xAE16068ã®å€ã1ã«å€æŽããããã®åŸã«0ã«å€æŽãããŸãã

ãããã®æé ã®å Žåãã¹ã¿ãã¯ã®ã¯ãªãŒã³ã¢ããã®è²¬ä»»ã¯åŒã³åºãå
ã®è©ã«ãããããšã«æ³šæããŠãã ããã
æé
0x004BF3B0ã¯ãã¡ãã¥ãŒãªãã·ã§ã³ã®1ã€ãéžæããããEscããŒãæŒããŠãå
¥åããæåã®ASCIIã³ãŒããç€ºãæ°åã
EAXã¬ãžã¹ã¿ãŒã«å
¥ããåŸã«ã®ã¿ãåŒã³åºããã³ãŒãã«å¶åŸ¡ãæ»ããŸãïŒEscã®å Žåã¯0
ãããã®ã³ãŒãã«ã€ããŠèããŠã¿ãŸãããã
; PUSH "Save" PUSH 0x53 ; 'S' CALL 0x004BEF10 ; , ADD ESP,8 PUSH "Load" PUSH 0x4C ; 'L' CALL 0x004BEF10 ; , ADD ESP,8 ; PUSH "Quick save-load" MOV DWORD PTR DS:[0xAE16068],1 CALL 0x004BF3B0 ADD ESP,4 MOV DWORD PTR DS:[0xAE16068],0 ; , CMP EAX,53 JE save ; 'S' CMP EAX,4C JNZ exit ; 'L' JMP load save: PUSH 1 ; CALL 0x005030E0 ; , ADD ESP,4 JMP exit load: CALL 0x0050CB90 ; , JMP exit exit: ; default-case switch-, ; , '#' JMP 0x0050C8C1
å®è¡å¯èœã€ã¡ãŒãžã®æåŸã«ã³ãŒãã±ã€ãã®å Žæãæ¢ããŠããŸãã ã¢ãã¬ã¹
0x0051039Bã§éå§ããããšã«ããŸããã

èµ·ãã£ãããšã¯æ¬¡ã®ãšããã§ãã
0051039B . 53 61 76 65 00 ASCII "Save",0 005103A0 . 4C 6F 61 64 00 ASCII "Load",0 005103A5 . 51 75 69 63 6B 20 73 61 76 65 2D 6C 6F 61 64 00 ASCII "Quick save-load",0 005103B5 68 9B035100 PUSH urw.0051039B ; ASCII "Save" 005103BA 6A 53 PUSH 53 005103BC E8 4FEBFAFF CALL urw.004BEF10 005103C1 83C4 08 ADD ESP,8 005103C4 68 A0035100 PUSH urw.005103A0 ; ASCII "Load" 005103C9 6A 4C PUSH 4C 005103CB E8 40EBFAFF CALL urw.004BEF10 005103D0 83C4 08 ADD ESP,8 005103D3 68 A5035100 PUSH urw.005103A5 ; ASCII "Quick save-load" 005103D8 C705 6860E10A 01000000 MOV DWORD PTR DS:[AE16068],1 005103E2 E8 C9EFFAFF CALL urw.004BF3B0 005103E7 83C4 04 ADD ESP,4 005103EA C705 6860E10A 00000000 MOV DWORD PTR DS:[AE16068],0 005103F4 83F8 53 CMP EAX,53 005103F7 74 07 JE SHORT urw.00510400 005103F9 83F8 4C CMP EAX,4C 005103FC 75 13 JNZ SHORT urw.00510411 005103FE EB 0C JMP SHORT urw.0051040C 00510400 6A 01 PUSH 1 00510402 E8 D92CFFFF CALL urw.005030E0 00510407 83C4 04 ADD ESP,4 0051040A EB 05 JMP SHORT urw.00510411 0051040C E8 7FC7FFFF CALL urw.0050CB90 00510411 ^ E9 ABC4FFFF JMP urw.0050C8C1
caseãããã¯ã®ã³ãŒãã±ã€ãã«ç¡æ¡ä»¶ãžã£ã³ãã远å ããŸããããããã¯ãé«åºŠãªã³ãã³ãã®ã¡ãã¥ãŒã®ãªãŒãã³ãåŠçãã圹å²ãæãããŸãã

ã²ãŒã ã§ãïŒããæŒããš...

ããã¯äœã§ãã ã©ããããåã®ã¡ãã¥ãŒãéããåŸãã¢ã€ãã ã®ãªã¹ãã¯ã¯ãªã¢ããããæ°ããã¢ã€ãã ã§ã®ã¿æ¡åŒµãããŸããã ããã£ãã·ã³ã°ãã¡ãã¥ãŒãã©ã®ããã«æç»ãããããããäžåºŠèŠãŠã¿ãŸããããã¡ãã¥ãŒã®å Žåãå°ãªããšããã1ã€ã®ããã·ãŒãžã£
0x004BED40ãåŒã³åºããªãããšã«æ³šæããŠ
ãã ãã ã ããããããã¹ãŠã®ã¢ã€ãã ãæç»ããçŽåã«åŒã³åºããè¡ããããããã¯ãªãŒã³ã¢ãããæ
åœããã®ã¯åœŒå¥³ã§ãã

ãã®ããã·ãŒãžã£ãåŒã³åºãåã«ã
EBXã¬ãžã¹ã¿ã®å€ãã¹ã¿ãã¯ã«
ããã·ã¥ããããšããäºå®ã«ãããããããå®è£
ãèŠããšãããããã«ããã®ããã·ãŒãžã£ã®åŒæ°ã§ã¯ãããŸããã

ãã¹ãŠã®åœä»€ããã·ãããããããã§ã«èšè¿°ãããŠããã³ãŒãã±ã€ãã®ã¢ãã¬ã¹ã倿Žããªãããã«ãcase-blockã®ã³ãŒãã«ãã®ããã·ãŒãžã£ãžã®åŒã³åºãã远å ããŸããã

ãããŠãããäžåºŠãïŒãèšå·ãå
¥åããŠã¿ãŠãã ããã

ãããïŒ
ã»ãŒãããŒãã«ãµãã

ãããŠãäžèŠãããšãããã¹ãŠãæ£åžžã«æ©èœããŠããããšã«æ°ä»ããŸãã
ãã¹ãã®éçšã§ãç§ãã¡ã¯æã«æ¥ãŸã

ããäžåºŠïŒ-SãæŒããŸãã

人ã
ã¯ã©ããžè¡ããŸãããïŒ
ã©ããããã²ãŒã ã¯ãŒã«ããä¿åããæé ã«ã¯ãã²ãŒã ãªããžã§ã¯ãã®ã¯ãªãŒã³ã¢ããã³ãŒããå«ãŸããŠããŸãã ã¡ã€ã³ã¡ãã¥ãŒã«ã¢ã¯ã»ã¹ããã³ã³ããã¹ã以å€ã§äœ¿çšããããã®ãã®ã§ã¯ãããŸããã ãã®ç¶æ³ããæãåºãã«ã¯2ã€ã®æ¹æ³ããããŸã-ã¯ãªãŒãã³ã°ã³ãŒããã©ãã«ããããæ£ç¢ºã«ææ¡ããïŒãããŠããã«ãã¹ããããåŒã³åºãããããããããŸããä¿¡ããŠãã ããïŒããéåžžã®ä¿åã®ä»£ããã«ããŒãããŠä¿åããŠããèªã¿èŸŒã¿ãŸãã æåŸã®éžæè¢ã«çãŸãããšãææ¡ããŸãã
0x0051040Aã«ããåœä»€
JMP 0x00510411ãå
¥åããŠãã³ãŒãã±ãŒãã倿ŽããŸãã
0051039B . 53 61 76 65 00 ASCII "Save",0 005103A0 . 4C 6F 61 64 00 ASCII "Load",0 005103A5 . 51 75 69 63 6B 20 73 61 76 65 2D 6C 6F 61 64 00 ASCII "Quick save-load",0 005103B5 68 9B035100 PUSH urw.0051039B ; ASCII "Save" 005103BA 6A 53 PUSH 53 005103BC E8 4FEBFAFF CALL urw.004BEF10 005103C1 83C4 08 ADD ESP,8 005103C4 68 A0035100 PUSH urw.005103A0 ; ASCII "Load" 005103C9 6A 4C PUSH 4C 005103CB E8 40EBFAFF CALL urw.004BEF10 005103D0 83C4 08 ADD ESP,8 005103D3 68 A5035100 PUSH urw.005103A5 ; ASCII "Quick save-load" 005103D8 C705 6860E10A 01000000 MOV DWORD PTR DS:[AE16068],1 005103E2 E8 C9EFFAFF CALL urw.004BF3B0 005103E7 83C4 04 ADD ESP,4 005103EA C705 6860E10A 00000000 MOV DWORD PTR DS:[AE16068],0 005103F4 83F8 53 CMP EAX,53 005103F7 74 07 JE SHORT urw.00510400 005103F9 83F8 4C CMP EAX,4C 005103FC 75 13 JNZ SHORT urw.00510411 005103FE EB 0C JMP SHORT urw.0051040C 00510400 6A 01 PUSH 1 00510402 E8 D92CFFFF CALL urw.005030E0 00510407 83C4 04 ADD ESP,4 0051040A 90 NOP 0051040B 90 NOP 0051040C E8 7FC7FFFF CALL urw.0050CB90 00510411 ^ E9 ABC4FFFF JMP urw.0050C8C1
ããïŒ ãªããžã§ã¯ãã¯æ¶ããŸããããã®åŸã®èªã¿èŸŒã¿ã«ããããã«è¡šç€ºãããŸãã
倿Žããã£ã¹ã¯ã«ä¿åããŠã¿ãŸãããã

æ°ã¥ãã®ã¯æ²ããããšã§ãããå®è¡å¯èœãã¡ã€ã«ã®ã€ã¡ãŒãžã®çµããè¿ãã«è¿œå ããæç€º
ã¯ã以åã®èšäºã®1ã€ã«ãã£ãããã«ããç©ççãªå¢çããè¶
ããŠrawããŸããã
PE Toolsã®urw.exeã»ã¯ã·ã§ã³æ
å ±ãèŠãŠãäžéšã®ãå¢çããèšç®ããŸãããã

ä»®æ³ãªãã»ããïŒ
0x00001000 ïŒ+çãµã€ãºïŒ
0x0010F400 ïŒ+ç»åããŒã¹ïŒ
0x00400000 ïŒ=
0x00510400ã€ãŸã 匷調衚瀺ãããæç€ºã¯ãå¢çç·ããããå€ã«åºãã

ãã¡ããã
NOPã¯åé€ã§ããŸããããŸã 20ãã€ãæ®ã£ãŠããŸãã ã³ãŒãæŽçªã®åã§ããã«5ãã€ããåããããšãã§ããŸãã

ããããæ®ãã®15ãã€ããã©ãããã°ããã§ããããïŒ ããšãã°ããSãããLãããSïŒLããšçããããããšã§ãã¡ãã¥ãŒé
ç®ãšãã®ã¿ã€ãã«ãæ
åœããè¡ã®ãµã€ãºãå°ããããããšãã§ããŸãããããã¯éåžžã«ãšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããã
éã¢ã»ã³ãã«ããããªã¹ãã®éäžã«ãç¬èªã®ã³ãŒãã远å ã§ããå Žæãããå¯èœæ§ããããŸãã ãããã¯ãŒãã§ããå¯èœæ§ããããéåžžãå®è¡å¯èœãã¡ã€ã«ã€ã¡ãŒãžã
NOPããŸãã¯ããšãã°
INT3åœä»€ã®æ«å°Ÿã«ãããããã·ãŒãžã£æ¬äœéã§äºãã«ç¶ããŸãã æåŸã®ã±ãŒã¹ã¯ãurw.exeã§ç¢ºèªãããŠããŸãã äŸãã°

è¡ãããŒããŠããã®ãããªå Žæã§åŠçãä¿åããã³ããŒãããŸãããã
00409FBA . 53 61 76 65 00 ASCII "Save",0 00409FBF . 4C 6F 61 64 00 ASCII "Load",0 00409FC4 . 51 75 69 63 6B 20 73 61 76 65 2D 6C 6F 61 64 00 ASCII "Quick save-load",0 005007A2 6A 01 PUSH 1 005007A4 E8 37290000 CALL urw.005030E0 005007A9 ^ E9 C6F5FFFF JMP urw.004FFD74 004FFD74 83C4 04 ADD ESP,4 004FFD77 ^ E9 16FFFFFF JMP urw.004FFC92 004FFC92 E8 F9CE0000 CALL urw.0050CB90 004FFC97 E9 25CC0000 JMP urw.0050C8C1 0050C438 > \BE 20C75300 MOV ESI,urw_.0053C720 ; ASCII "Extended commands"; Case 23 ('#') of switch 0050C3FB 0050C43D . E8 FE28FBFF CALL urw.004BED40 0050C442 E9 4F3F0000 JMP urw.00510396 0050C447 . E9 75040000 JMP urw.0050C8C1 00510396 68 BA9F4000 PUSH urw.00409FBA ; ASCII "Save" 0051039B 6A 53 PUSH 53 0051039D E8 6EEBFAFF CALL urw.004BEF10 005103A2 83C4 08 ADD ESP,8 005103A5 68 BF9F4000 PUSH urw.00409FBF ; ASCII "Load" 005103AA 6A 4C PUSH 4C 005103AC E8 5FEBFAFF CALL urw.004BEF10 005103B1 83C4 08 ADD ESP,8 005103B4 68 C49F4000 PUSH urw.00409FC4 ; ASCII "Quick save-load" 005103B9 C705 6860E10A 01000000 MOV DWORD PTR DS:[AE16068],1 005103C3 E8 E8EFFAFF CALL urw.004BF3B0 005103C8 83C4 04 ADD ESP,4 005103CB C705 6860E10A 00000000 MOV DWORD PTR DS:[AE16068],0 005103D5 83F8 53 CMP EAX,53 005103D8 ^ 0F84 C403FFFF JE urw.005007A2 005103DE 83F8 4C CMP EAX,4C 005103E1 ^ 0F85 B0F8FEFF JNZ urw.004FFC97 005103E7 ^ E9 A6F8FEFF JMP urw.004FFC92
ä»åã¯ãç»åãæ£åžžã«ä¿åãããããã«ããŒãããŠä¿åããããã®æ°ããã¡ãã¥ãŒã䜿çšããŠãURWã§éã¶ããšãã§ããŸãã
ããšãã
æ azineã¯ãã»ãšãã©ãã¹ãŠã®äººãšæŽ»ååéã§æãåä»ãªæ§è³ªã®1ã€ã§ãã åããŠã§ã¯ãªãçŽé¢ããŠããåé¡ã®è§£æ±ºã«å°ãæéãè²»ããããšãæ ããªãã§ãã ãã-ããã«ãããå°æ¥çã«ã¯ããå€ãã®æéãç¯çŽã§ããã§ãããã
ãæž
èŽããããšãããããŸããããŸãããã®èšäºã誰ãã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã