PHPã¯ãåçãªWebããŒãžãè¿ éã«äœæããããã«èšèšãããŠããããšãç¥ã£ãŠããŸãã ãããã«ãããããã¯PHPéçºè ã®å ¬åŒãŠã§ããµã€ãã«æžãããŠãããã®ã§ãã ãã ããPHPãããããã«ãç°ãªãã¢ããªã±ãŒã·ã§ã³ãããšãã°Windowsçšã®æ¬æ Œçãªã¢ããªã±ãŒã·ã§ã³ãäœæããŠã¿ãŠã¯ã©ãã§ããããã ã«èå³ããããŸããïŒ ããããå§ãŸã£ãïŒ
é»ãåè§
ã¢ããªã±ãŒã·ã§ã³ã¯ãã³ã³ãœãŒã«ãšãŠã£ã³ããŠã«åãããŠããŸãã æåã®ãã®ãäœæããããšããå§ããŸããããããã¯ç°¡åã§ãã ã§ãããããŸãæåã«ãäœãæžããã決ããå¿ èŠããããŸã...åçŽãªMD5ããã³Base64ãšã³ã³ãŒããŒãæžãããšããå§ãããŸã-ç¹ã«ãã¹ãŠãéåžžã«ã·ã³ãã«ãªã®ã§ã家åºå ã®ãã®ãå¿ èŠã§äŸ¿å©ã§ãã ã³ãã³ãã©ã€ã³ããPHPã¹ã¯ãªãããå®è¡ããå¿ èŠãªãã©ã¡ãŒã¿ãŒãæž¡ãã«ã¯ã次ã®æ§æã䜿çšããŸãã
php.exe [ãªãã·ã§ã³] [-f] <ã¹ã¯ãªãã> [ãªãã·ã§ã³]
ã¹ã¯ãªããèªäœã®å 容ã«é¢ããŠã¯ãæž¡ããããã©ã¡ãŒã¿ãŒã®æ°ã¯$ argcå€æ°ã«æ ŒçŽããããã©ã¡ãŒã¿ãŒèªäœã¯$ argvé åã«æ ŒçŽãããŸãã ããã§ãã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ç°¡åãªèª¬æãçµãããã¢ã¯ã·ã§ã³ãèµ·ããæãæ¥ãŸããã
ã¹ã¯ãªãããæžãããšã«ç ©ããããªãããã«ãç§ã¯ããªãã®ããã«ãããæžãããšã«ããŸããã ããã¯ç§ãæã£ãŠãããã®ã§ã
å€æããïŒ
<ïŒphp
ifïŒ$ argcïŒ= 3ïŒ{echo "
+ -------------------------------------- +
| MD5ããã·ã¥ã®äœæïŒenc md5 string |
| Base64ããã·ã¥ãäœæïŒenc b64 string |
+ -------------------------------------- + \ n ";
} else {
echo "\ n";
ifïŒ$ argv [1] == 'md5'ïŒ{// MD5 encode
echo md5ïŒ$ argv [2]ïŒã "\ n \ n"; æ»ã¬ïŒïŒ;
}
ifïŒ$ argv [1] == 'b64'ïŒ{// Base64ãšã³ã³ãŒã
echo base64_encodeïŒ$ argv [2]ïŒã "\ n \ n"; æ»ã¬ïŒïŒ;
} else {echo "äžæãªã³ãã³ãã \ "enc \"ãšå ¥åãããšããã«ãã衚瀺ãããŸãã\ N \ n "; }
}
ïŒ>
<img src = " habrastorage.org/getpro/habr/olpictures/cf6/1d1/61b/cf61d161b4a795fc4c658d661d96fdae.gif "å¹ = 450é«ã= 186ããŒããŒ= 0 alt =ã¹ã¯ãªããã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ "hspace = 10 vspace = 10>
ã¹ã¯ãªãããäœæãããæãèå³æ·±ãã®ã¯EXEã¢ããªã±ãŒã·ã§ã³ãžã®ã³ã³ãã€ã«ã§ãã ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãã³ã³ãã€ã«ããã«ã¯ãRoadsend Compiler Studioã䜿çšããŸãã ç¡æç»é²åŸã www.roadsend.comããããŠã³ããŒãã§ããŸãã ããŠã³ããŒãããŸãããïŒ Roadsend IDEãéããæ°ãããããžã§ã¯ããäœæãïŒãããžã§ã¯ã->æ°èŠïŒãå¿ èŠãªãã©ã¡ãŒã¿ãŒãæå®ãïŒã¹ã¯ãªããããããžã§ã¯ããã£ã¬ã¯ããªã«ã¹ããŒããããšããå§ãããŸãïŒã[OK]ãã¯ãªãã¯ããæåŸã«å€§åãªãããžã§ã¯ã->ãã«ããæå®ããŸãã ããã§ãããžã§ã¯ããã©ã«ãã«ç§»åããŸãããã¹ãŠãæ£ããè¡ã£ãå Žåãå®æããEXEãããã«ãããŸãã ããã ãã§ããïŒ ã¯ã ããã€ãã®ãã¥ã¢ã³ã¹ãç¥ã£ãŠããã°ç°¡åã§ãã ç§ããå§ãããå¯äžã®ãã®ã¯ããã©ã°ã€ã³ã©ã€ãã©ãªã§éã¶ã®ã«äŸ¿å©ãªå ŽåããããEXE UPXãããã¯ããããšãã§ããŸããããã®ãããã¯ã«ã€ããŠã¯ããå°ã詳ãã説æããŸãã ããã§ã¯ããŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ã«ç§»ããŸããã...
çª
ããããæ¢ã«ãåãã®ãšãããéåžžã®PHPããŒã«ã䜿çšããŠãŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ãäœæããå ŽåãããŸãããããšãã§ããªããããæåã«ãŠã£ã³ããŠãéçºããããã®ããŒã«ãéžæããå¿ èŠããããŸãã ãã¹ãŠã®ããŒã«ã®äžã§ã2ã€ãæãéç«ã£ãŠããŸã-ããªãããéçºãããPHP-GTKïŒwww.gtk.php.netïŒãšãããŸãããéçºãããŠããªããæ©èœçã§ã¯ãªãWinBliderïŒwww.winbinder.orgïŒã§ãã ããã§ã¯ããã人æ°ãããæåãªãã®ãããŸãè¯ããªãå ŽåïŒããã¯ç§ã®èŠæ¹ã§ãïŒã«è©²åœãããããWinBlinderã䜿çšããŠPHPã§æåã®ãŠã£ã³ããŠãªãŒããéçºããŸãã æåã«ããŠã³ããŒãããå¿ èŠããããŸãã çµãã£ãïŒ OKãå ã«é²ã¿ãŸã...
Winbinderã«ã¯ç¬èªã®ããŒã¿åœ¢åŒphpwãããããæ°ã«å ¥ãã®ã³ãŒããšãã£ã¿ãŒã«ããã«å€§èã«ãã€ã³ãã§ããŸãã ããã©ã«ãã§ã¯ãphpwãã¡ã€ã«ãèµ·åããããšããã®ãã¡ã€ã«ã«å«ãŸããPHPã¹ã¯ãªãããéãããæ¢ã«æ¥ç¶ãããŠãããã©ã€ã³ãã©ã€ãã©ãªã䜿çšããŠã€ã³ã¿ãŒããªã¿ãŒãä»ããŠå®è¡ãããŸãã ãããããåç¥ã®ããã«ããã®ãã©ã©ã€ã«ãèªåã§ããã°ã©ãã³ã°ããå¿ èŠããããŸãããç¹ã«PHPã®OOPã«å°ãªããšãå°ã粟éããŠãã人ã«ãšã£ãŠã¯ãè€éãªããšã¯äœããããŸããã ãã ããæ¬è³ªçã«ç®é ãããã°ã©ã ã¯ïŒPHP-GTKãšã¯ç°ãªãïŒæç¶ãåããã°ã©ãã³ã°ããµããŒãããŠãããããèŠç¥ãã¬äººã§ãã³ãŒãã£ã³ã°ã§ããŸãã ããã«ãWinBlinderã¯éåžžã«ããææžåãããŠãããã€ã³ã¹ããŒã«ã¢ãŒã«ã€ãã«ã¯æ¢ã«ããã€ãã®éåžžã«èå³æ·±ãäŸãå«ãŸããŠããŸãïŒãã©ãŒã ãšãã£ã¿ãŒã«ç¹ã«æ³šæããŠãã ããïŒã ç®é ãã¯ãŸã ããããã®ããããæ©èœãèå³æ·±ããã®ãæã£ãŠããŸããããã®èšäºã®ç¯å²ã§ã¯ãããã«ã€ããŠè©³ãã説æããããšã¯ã§ããŸããã ããŠããããããšã³ã³ãŒããŒãåŒã³åºãã®ã«æãé©åãªææã§ãã ãã¹ãŠãã³ãŒãã§éè² è·ã«ããªãããã«ãMD5ãšã³ã³ãŒããŒã®ã¿ãäœæããããšã«ããŸããã
<ïŒphp
//ã¡ã€ã³ã©ã€ãã©ãªãæ¥ç¶ããŸã
include "include / winbinder.php";
//ãŠã£ã³ããŠãç·šéããããã®ã©ãã«ãä»ããŸã
defineïŒ 'IDC_EDITBOX1002'ã1002ïŒ;
defineïŒ 'IDC_EDITBOX1003'ã1003ïŒ;
//ãŠã£ã³ããŠãæç»ããŸã
$ winmain = wb_create_windowïŒnullã
AppWindowã
ãS1Bã«ããMD5ããã·ã¥ãžã§ãã¬ãŒã¿ãŒ[SBT]ãã
WBC_CENTERãWBC_CENTERã315ã134ã
0x00000000ã0ïŒ;
//ãŠã£ã³ããŠããã¿ã³ã§åããŸã
ïŒãã¬ãŒã ãæã
wb_create_controlïŒ$ winmainãFrameã ''ã10ã10ã290ã85ã0ã0x00000000ã0ã0ïŒ;
ïŒç¢æïŒã©ãã«ïŒãæã
wb_create_controlïŒ$ winmainãLabelã 'TextïŒ'ã23ã35ã45ã15ã0ã0x00000000ã0ã0ïŒ;
wb_create_controlïŒ$ winmainãLabelã 'HashïŒ'ã23ã65ã45ã15ã0ã0x00000000ã0ã0ïŒ;
ïŒç·šéãŠã£ã³ããŠãæç»ãïŒäžéšã¯éã¢ã¯ãã£ãã«ãªããŸãïŒãããŒã¿ãå€æ°ã«å ¥ããŸã
$ text = wb_create_controlïŒ$ winmainãEditBoxã ''ã78ã30ã210ã20ãIDC_EDITBOX1002ã0x00000000ã0ã0ïŒ;
$ hash = wb_create_controlïŒ$ winmainãEditBoxã ''ã78ã60ã210ã20ãIDC_EDITBOX1003ã0x00000040ã0ã0ïŒ;
//å¿ èŠãª2ã€ã®ç¢æ=ïŒ
wb_set_handlerïŒ$ winmainã "process_main"ïŒ;
wb_main_loopïŒïŒ;
é¢æ°process_mainïŒ$ãŠã£ã³ããŠã$ idïŒ{
ïŒããŒã¿ç·šéãŠã£ã³ããŠãã°ããŒãã«ã«å®£èš
ã°ããŒãã«$ããã¹ãã$ããã·ã¥ã
switchïŒ$ idïŒ{
ã±ãŒã¹IDC_EDITBOX1002ïŒ
wb_set_textïŒ$ hashãmd5ïŒwb_get_textïŒ$ textïŒïŒïŒ;
äŒæ©;
ã±ãŒã¹IDCLOSEïŒ
wb_destroy_windowïŒ$ windowïŒ;
äŒæ©;
}
}
ïŒ>
ã³ãŒãã¯éåžžã«ã·ã³ãã«ã§ãããã¥ã¡ã³ãã1ã2æé座ã£ãåŸãç§ãšåãããã«ç解ã§ããããã«ãªããšæããŸãã ããŠãã¯ã©ã€ããã¯ã¹ã¯ãŠã£ã³ããŠãåéããŠããŸã...ãã®ããã«ãå¥ã®ãã£ã¬ã¯ããªãäœæããããã«ã¹ã¯ãªããã転éããããšãææ¡ããŸãã ãŸããwinbinderã®phpcodeãã£ã¬ã¯ããªããincludeãã©ã«ããŒã移åããå¿ èŠããããŸãã çµãã£ãïŒ ã³ã³ãã€ã«ããŸãããïŒ ãããš... Roadsend IDEãã€ããå¿ èŠã¯ãããŸããã ã©ããã£ãŠïŒ ããã§ïŒ ç®é ãã¯ãµããŒãããŠããŸããããGTKã®ã¿ããµããŒãããŠãããRoadsendéçºè ã®ãã©ãŒã©ã ã§ã®ãããŸããªåçããå€æãããšãç®é ãã®ãµããŒãã¯ä»åŸé·ãéæåŸ ã§ããŸãã ãã ãã錻氎ãæããŠãä»ã®æ¹æ³ãæ¢ããŸãããããã®ãã¹ã®ååã¯BamcompileïŒwww.bambalam.se/bamcompile/ïŒã§ãã ãã ããäœããã®çç±ã§ãããŒãžã§ã³1.21ã¯åžžã«æ£ããåäœããããã¹ãŠãéåäœã¢ããªã±ãŒã·ã§ã³ã«ã³ã³ãã€ã«ããããšããããŸãããããŒãžã§ã³1.1ã§ã¯ãã®ãããªäžå ·åã¯çºçããªãããã䜿çšããããšããå§ãããŸãã ã³ã³ãã€ã©ãŒçšã«å¥ã®ãã©ã«ããŒãfolderãã¿ãªãéžæããã³ãã³ãã©ã€ã³ã«ç§»åããŠèªãããã«ã³ãã³ããå®è¡ããŸãã
bambalam -w -c CïŒ\ PHP_Projects \ MD5_Hash_Generator \ md5.phpw md5.exe
![ã³ã³ãã€ã«ããã»ã¹](https://habrastorage.org/getpro/habr/olpictures/aba/f4f/769/abaf4f7692e34482dc880bad5b857328.gif)
ãã¹ãŠãæ£ããè¡ãããå Žåãã³ã³ãã€ã©ã®ãããã£ã¬ã¯ããªã«ãæ°ãã«ã®ã£ã³ã°ããããŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ããããŸãã ããã ãã§ã UPXã§ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãããã¯ããããšããå§ãããŸãïŒBamcompileã«ããã«ä»å±ããŸãïŒã
![ç§ãã¡ã®ã¢ããª](https://habrastorage.org/getpro/habr/olpictures/7ad/bfa/805/7adbfa8057871a565aa482f9d64733ec.gif)
éæ³ã®cas
äžèšã®ãã¹ãŠã¯ç¢ºãã«éåžžã«èå³æ·±ãæçãªãã®ã§ãããé©åãªããŒã«ãæå ã«ãªãå ŽåããããŸã...ããã§ã¯ã©ãããŸããïŒ ç¹ã«ãã®ã±ãŒã¹ã§ã¯ãWinRARã¢ãŒã«ã€ãã®SFXãªãã·ã§ã³ã§ã·ã£ãŒãããºã ãä»ããŠEXEãååŸããéåžžã«èå³æ·±ãæ¹æ³ã1ã€ãããŸãã äŸãšããŠãæåã®ã³ã³ãœãŒã«ã¹ã¯ãªããã䜿çšããŸãã ãŸããã¹ã¯ãªãããå¥ã®ãã©ã«ããŒã«é 眮ããphp.exeãšphp * ts.dllãããã«ã³ããŒããŸãã 次ã«ãåãrun.batãã©ã«ããŒã«æ¬¡ã®ã³ã³ãã³ããäœæããŸãã
@ãšã³ãŒãªã
php.exe -q console.phpïŒ 1ïŒ 2
次ã«ããã®ãããªãã®ãããã¯ããå¿ èŠããããŸãããã®ããã«ã¯ããã¹ãŠã®ãã¡ã€ã«ãéžæããå³ã¯ãªãã¯ããŠãã¢ãŒã«ã€ãã«è¿œå ...ããéžæããŸãã
![](https://habrastorage.org/getpro/habr/olpictures/63b/d13/d52/63bd13d526357b5e927b29435d9d4042.gif)
衚瀺ããããŠã£ã³ããŠã§ãRARã¢ãŒã«ã€ãã®åœ¢åŒãéžæããæ倧å§çž®ãèšå®ããŠããCreate SFX archiveãããã¯ã¹ããã§ãã¯ããŸãã
![](https://habrastorage.org/getpro/habr/olpictures/fe3/794/aa5/fe3794aa5426991049130c427e6907fd.gif)
ãã®åŸãã詳现-> SFXãªãã·ã§ã³ãã«ç§»åããã¹ã€ããããçŸåšã®ãã©ã«ããŒã«äœæãã«èšå®ãããrun.batãããæœåºåŸã«å®è¡ãã«èšå®ãããã¢ãŒããã¿ãã§ã解åãã«ãã§ãã¯ããŒã¯ãä»ããŸããäžæãã©ã«ãããããã³ã¹ã€ããããã¹ãŠé衚瀺ãããã³ããã¹ãŠã®ãã¡ã€ã«ãäžæžãããèšå®ããŸãã
![](https://habrastorage.org/getpro/habr/olpictures/8c4/e3e/965/8c4e3e9656d1b0b62f2f4abf500c1a6d.gif)
å³ããããã«ãé©åãªã¿ãã«ã¢ã€ã³ã³ã貌ãä»ããããšãã§ããŸãã ããã§ãã¢ãŒã«ã€ãã®äœæã確èªããåºåã§ã³ã³ãã€ã©ãªãã§EXEãååŸããŸãã
ã¢ãŠãã
ããã§ãä»æ¥ã¯ãPHPã®äœ¿çšã®éçãæŒãåºããããšãããã«ç°¡åãã瀺ããŸããã ãã¡ããã誰ãããã®ãã¹ãŠããã³ã»ã³ã¹ãšåŒã¶ã§ãããã圌ãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºã倧ãããã¡ã¢ãªãæµããŠããããã¹ãŠãããããã ãšèšããŸãã 圌ãã«èšãããŠãã ããããããã誰ãããªããPHPã§ãã¹ãŠã®ãŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ãæžãããšãèŠæ±ããããšã¯ãããŸããã ã·ã ã§çµãããŸãã ããã°ã£ãŠã