![](https://habrastorage.org/getpro/habr/post_images/e4a/981/73b/e4a98173b70a2bb0869ab696b3cb322c.png)
ããã«ã¡ã¯ãHabralyudiïŒ
ãããã³ã°ããºã«ã解ãããã»ã¹ã¯ç¹ã«å¿«é©ã§ã解決çãããå Žåã¯äºéã«å¿«é©ã§ãã æ¬æ¥ã11æã«éå¬ãããZeroNightsã«ã³ãã¡ã¬ã³ã¹ã§çºèŠããäºè£ãèŠã€ããããšã«ããŸããããµã€ããŒããŒã¹ãšITã¹ã¯ãŒã«ã§ããHackerUã®ããŒã ãããŒããŠã§ã¢ãã£ã¬ã³ãžã§1äœã«ãªããŸããã crackme SHADOWãœãªã¥ãŒã·ã§ã³ã¯ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ã«ç±å¿ãªãŠãŒã¶ãŒã«åœ¹ç«ã¡ãŸãã
ãã®ã¬ãã«ã®ã¯ã©ãã¯ã«ã€ããŠã¯ãã¢ã»ã³ãã©ãŒãç¥ã£ãŠããŠãWindowsçšã®ããã€ã¹ãã©ã€ããŒã®åºæ¬çãªç解ãããã°ååã§ãã
è¿ éãªåæ
ãã¡ã€ã«CrackmeZN17.exeããããŸãã ãŸããHIEWã§è¡šé¢æ€æ»ãå®æœããŸãã ããã«ããããµã³ãã«ã«é¢ããäžè¬çãªæ å ±ãåŸãããŸãã ãã¡ã€ã«ãhiewã§éããšãæåãMZãã§å§ãŸãWindowså®è¡å¯èœãã¡ã€ã«ã®æšæºããããŒã衚瀺ãããŸãã ãŸãããã¡ã€ã«ã¯ããã¯ãããŠãããïŒå€æ°ã®ç©ºã®ã¹ããŒã¹ãååšããããïŒãC ++ã§èšè¿°ãããŠããããšãããããŸãã ãŸãããã¡ã€ã«ãããã¯ãããŠããå Žåãããã«ãŒã¯ãã¹ãŠã®éè€ãã€ããæå°åããããšããŸãã ãããã£ãŠãããã±ãŒãžåããããã¡ã€ã«ã®ãšã³ããããŒãå¢å ããŠããŸãã
ALT + F6ãæŒããŠãè¡ã¢ãŒãã«å ¥ããŸãã ãããã£ãŠãå°å·ãããæåã«é¢é£ãããã€ãã®ã¿ã衚瀺ãããŸãã ãã ãããã¹ãŠã®è¡ãæ€èšããã®ã§ã¯ãªãããããã調ã¹ãŠæããããèŠã€ããããšãã¿ã¹ã¯ã§ãã ããã¯æãããããããŸããããããã°ã©ã ã®äœæè ããå§ãŸããæ£ç¢ºãªå€å®ïŒtorjan-pswãtrojan-ransomãªã©ïŒã§ãã¡ã€ã«ãæªæã®ãããã®ãšããŠèªèããè¡ã§èŠãã ãã§ãå€ãã®æçšãªæ å ±ãåŸãããšãã§ããŸãïŒ ããäžã®HIEWã§ãã¡ã€ã«ãã¹ã¯ããŒã«ããããã«èå³æ·±ããã®ã確èªããŸã-è¡
«error: Can not extract driver files!», «error: Can not extract driver files! Password: Serial is Valid!» «error: Can not extract driver files! Password: Serial is Valid! Serial is not Valid»:
![](https://habrastorage.org/getpro/habr/post_images/207/0ef/abf/2070efabfac5baaf82b148ab6a7de39c.png)
ããã«-ãã®ä»ïŒãªãã»ãã0x5B8Dããã³0x63E4ã«ã¯ãããã«2ã€ã®å®è¡å¯èœãã¡ã€ã«ã®ããããŒããããŸãã
![](https://habrastorage.org/getpro/habr/post_images/97b/653/7a4/97b6537a4a60f2c9de185e903aee70f4.png)
![](https://habrastorage.org/getpro/habr/post_images/751/3cd/845/7513cd8455b04f5a93cfe7321101ef0d.png)
ããã¯ãåãæåãMZãã§èŠãããšãã§ããŸãã
æåŸãŸã§ã¹ã¯ããŒã«ãããšãããã°ã©ã ã«ã¯ãããã§ã¹ããå«ãŸããŠãããããèµ·åæã«ç®¡çè æš©éãå¿ èŠã§ããããšãããããŸãã
![](https://habrastorage.org/getpro/habr/post_images/9de/af7/77a/9deaf777a9e7f2a1905b08922c6cc1af.png)
ããã«ãããèŠèŠåæãå®äºã§ããŸãã ãã§ã«æ¬¡ã®ããšãç解ã§ããŸããã
ã»CrackmeZN17.exeå®è¡å¯èœãã¡ã€ã«ã¯ããã±ãŒãžåãããŠããŸããã
ã»C ++ã§èšè¿°ãããŠããŸãã
ã»èµ·åæã«ã¯ããã¡ã€ã«ã«ã¯ç®¡çè æš©éãå¿ èŠã§ãã
ã»ããã«2ã€ã®å®è¡å¯èœãã¡ã€ã«ãå«ãŸããŠããŸãã
è€éã§ãªãåæ
ããŠããã®crackmeãå®è¡ããŠãè©ŠããŠã¿ãŠãã ããïŒ
![](https://habrastorage.org/getpro/habr/post_images/59e/12d/8d9/59e12d8d940e5f50108276a556b9c842.png)
crackmeãèµ·åãããšããã®ãã£ã¬ã¯ããªã«ããã«2ã€ã®ãã¡ã€ã«ã衚瀺ãããŸãïŒCrackmeZN17.sysãšCrackmeZN17_.sysã ããã§ã管çè æš©éãå¿ èŠãªçç±ãæããã«ãªããŸãããã©ã€ããŒãèªã¿èŸŒãããã«å¿ èŠã§ããããã以å€ã®å Žåã¯åã«èªã¿èŸŒãŸããŸãããHIEWã§ã¯ããMZããã€ãã§å§ãŸã2ã€ã®å®è¡å¯èœãã¡ã€ã«ã®ããããŒãèŠãŸããã ãããã¯ãcrackmeã®èµ·åæã«æœåºããããã®ãšåããã©ã€ããŒã§ãã
ããããŸãããããã¯ãã¹ãŠæããã§ãã ããã«ãã·ãªã¢ã«ãã§ãã¯ãè¡ãããå ŽæãèŠã€ããŸãããã IDAã§CrackmeZN17.exeãéããŸãã Shift + F12ãæŒããŠãè¡ãã¥ãŒã«ç§»åããŸãã ã¯ããHIEWã§ãåæ§ã®ããšãæ¢ã«è¡ãããŠããŸãããããã§ã¯ç°¡åãªåæãè¡ããŸãããIDAãããæ·±ãããã«ã¯ãããé©åã§ãã ãããŠãããã§ç§ãã¡ã¯ãã§ã«éŠŽæã¿ã®ããè¡ãèŠãŸãïŒ
![](https://habrastorage.org/getpro/habr/post_images/2c7/b6f/aaa/2c7b6faaa9188a1a76c0c57b78b38c7a.png)
ããã§ãã©ã®é¢æ°ã§æååã䜿çšãããŠããããå€æãããšããã§ãããã ããã«ãããå ¥åæ€èšŒãå®è£ ãããé¢æ°ãæäŸãããŸãã ãããè¡ãã«ã¯ããã·ãªã¢ã«ã¯æå¹ããšããè¡ã®ã¯ãã¹ãªã³ã¯ããã©ãïŒãCtrl + XããæŒããŸãïŒãCrackmeZN17.exeãã¡ã€ã«ã§ã·ãªã¢ã«ããã§ãã¯ããããžãã¯ããªãããšãç解ããŠãã ããã ãªããã
![](https://habrastorage.org/getpro/habr/post_images/642/d9b/0e2/642d9b0e2368c094b734da5b83640e75.png)
ããã¯ãWinApié¢æ°ãTrueãè¿ããå Žåã«ã®ã¿ãã«ããã«ãæå¹ã§ãããšèŠãªãããããã§ãã ä»äœ ããã«æããŸãã ICTLèŠæ±ãIOCTLã³ãŒã22200Chã§éä¿¡ãããŠããããšãããããŸãã
DeviceIoControlé¢æ°ã䜿çšãããšãI / OãããŒãžã£ãŒãIRPãã±ãããçæããå¿ èŠãªããŒã¿ã§æºãããŠããã€ã¹ã«éä¿¡ããããšã確èªã§ããŸãã éåžžãããã€ã¹ã¯ãDriverEntryé¢æ°ã§èªã¿èŸŒãŸãããšãã«ãã©ã€ããŒèªäœã«ãã£ãŠäœæãããŸãã ãããŠãéåžžã®ãã¡ã€ã«ã®ããã«æ±ãããšãã§ããããã«ïŒããšãã°ãèªã¿åããšæžã蟌ã¿ïŒããã®ããã€ã¹ãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæãããŸãã éåžžãã·ã³ããªãã¯ãªã³ã¯ã¯ãåãDriverEntryé¢æ°ã§ãã©ã€ããŒãèªã¿èŸŒããšãã«ãäœæãããŸãã å®éãããã«ã¯ããªãã®çè«ãããããã®ã¿ã¹ã¯ã解決ããã«ã¯ãã«ãŒãã«ã¢ãŒããã©ã€ããŒãã©ã®ããã«æ©èœãããã«ã€ããŠã®åºæ¬çãªç解ãå¿ èŠã§ãã ãã®åæã§ã¯ããã詳现ã«ã¯è§£æ±ºãããŸãããå¥ã®ãã£ã¹ã«ãã·ã§ã³ã®ãããã¯ãšããŠæ®ããŸãã
ãã®çµæãããžãã¯ã¯æ¬¡ã®ããã«ãªããŸããcrackmeã¯2ã€ã®ãã©ã€ããŒããã£ã¹ã¯ã«ããããããããããããŒãããŸãã ãã©ã€ãã®1ã€ãç¹å®ã®ããã€ã¹ãäœæããå ¥åããããã°ã€ã³ãã¹ã¯ãŒãã®ãã¢ãåãå ¥ããŸãã æåŸã®ããã€ã¹ã¯ãDeviceIoControlé¢æ°ã®èŠæ±æã«I / OãããŒãžã£ãŒã«ãã£ãŠåœ¢æãããIRPãã±ããããåä¿¡ãããŸãã ããã«ãIRPèŠæ±ã¯ãDeviceIoControlã«èšå®ãããŠããã¹ã±ãžã¥ãŒãªã³ã°æ©èœã«ãã£ãŠåŠçãããŸããã®æ©èœã¯ãããã€ã¹ã«éä¿¡ãããIRPãã±ããããã£ããããç®çã®IOCTLã³ãŒããæã€ãã±ããã®ã¿ãåŠçããŸãã ããã€ãã®ç¹ã§ããŠã£ã³ããŠã¡ãã»ãŒãžãåŠçããæé ã«äŒŒãŠããŸãã
ãã®å Žåãèå³æ·±ãIOCTLã³ãŒãã¯-0x22200Cã§ãã I / OèŠæ±ãæ£åžžã«å®äºãããšãDeviceIoControlã¯Trueãè¿ããŸãã ãããã£ãŠãcrackmeã解決ããã«ã¯ããã£ã¹ãããé¢æ°ãèŠã€ããå¿ èŠããããŸãã
å ¥åãããã¢ãã©ã®ããã€ã¹ã«éä¿¡ãããããç解ããå¿ èŠããããŸãã 0x402591ã®CreateFileAé¢æ°ã®åŒã³åºãã«ãã¬ãŒã¯ãã€ã³ããèšå®ããŠãIRPãã±ããã®éä¿¡å ã®ããã€ã¹ã確èªããŸãããã åæ¢åŸãesi-registerã«æ¬¡ã®è¡ãžã®ãã€ã³ã¿ã衚瀺ãããŸãïŒ "\\ã\ CrackmeZN17"ã ãã®è¡ã¯ã2ã€ã®ãã©ã€ããŒã®ãããããæäŸããããã€ã¹ãžã®åãªãã·ã³ããªãã¯ãªã³ã¯ã§ãã CrackmeZN17.sysãšCrackmeZN17_.sysã®ã©ã¡ããHIEWã§ãããã®ãã¡ã€ã«ããã°ããèŠãããšã§ç解ã§ããŸãã ãŸããCrackmeZN17.sysãéããŸãã è¡è¡šç€ºã¢ãŒã-ALT + F6ã«ç§»åããŠãããã確èªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/f5a/3b8/745/f5a3b8745b8890ea0b09a937c8015e0c.png)
ãããã£ãŠãCrackmeZN17.sysãã©ã€ããŒã¯CrackmeZN17ããã€ã¹ã®ãµãŒãã¹ãæ åœããŸãã IRPãã±ããã圌ã«éä¿¡ãããŸãã ãããã£ãŠã次ã®ã¹ãããã¯ãã®ç¹å®ã®ãã©ã€ããŒã®éã§ãã
Reverse CrackmeZN17.sys
IDAã§ãã¡ã€ã«ãéããŸãã ãã®äžã«ãã£ã¹ãããæ©èœããããŸãã ãã®sub_104F8ããããŸãã ãã®é¢æ°ã¯éåžžã«ç°¡åã§ãã
![](https://habrastorage.org/getpro/habr/post_images/6e8/811/025/6e88110250a9d5f00496f97b9a8b33f0.png)
sub_10F60ã0ãè¿ãå Žåã«å®è¡ãããé¢æ°ãèŠãŠã¿ãŸãããã
![](https://habrastorage.org/getpro/habr/post_images/841/2e1/c4a/8412e1c4ad29a00087b3fdaa9e19b37c.png)
ããã§ã¯ãããã§ãªãå Žåã«åŒã³åºãããé¢æ°ãèŠãŠã¿ãŸãããã
![](https://habrastorage.org/getpro/habr/post_images/a9f/c19/9fe/a9fc199fe6d8dd126e862cbc452f858b.png)
ããã§ãã¹ãŠãå€ããå°ãªããæ確ã«ãªããŸãããé¢æ°sub_10F60ã®ååãå€æŽããŠç¢ºèªã§ããŸãã æ£ããå ¥åãããšã1ãè¿ãããŸãã次ã«ããã®é¢æ°ã«æž¡ããããã©ã¡ãŒã¿ãŒãç¹å®ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãIRPããã±ãŒãžã®æ§é ã®è©³çŽ°ãªèª¬æãå¿ èŠã§ãã ããããæåã«ãå ¥å/åºåã¡ãœããã®ã¿ã€ãã決å®ããå¿ èŠããããŸã-æ§é å ã§å¿ èŠãªãªãã»ããã¯ããã«äŸåããŸãã IOCTLã³ãŒãã«ãã£ãŠI / Oã¡ãœããã決å®ã§ããŸãïŒãŠãŒã¶ãŒã¢ãŒãã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠI / Oã®ã¿ã€ãã決å®ããããšãå¯èœã§ãããšæ¢ã«æšæž¬ããŠããŸããïŒïŒã ããã§ã¯ãã³ãŒããã©ã°ã€ã³ã䜿çšããŸãã ã èµ·ãã£ãããšã¯æ¬¡ã®ãšããã§ãã
![](https://habrastorage.org/getpro/habr/post_images/3da/e7a/0bc/3dae7a0bcd13851db13024e931bfe8cb.png)
IRPæ§é å ã®å€äœãæ¯èŒããããã ãã«æ®ããŸãã æ§é ã®è©³çŽ°ãªèª¬æã¯ãWinDbgã«ãŒãã«ãããã¬ãŒã䜿çšããŠååŸã§ããŸãã ãã®é¢æ°ã§ã¯ãIRPãã±ããããæåã«æœåºãããã®ã¯ã_IO_STACK_LOCATIONæ§é äœãžã®ãã€ã³ã¿ãŒã§ãã IOCTLã³ãŒããèªã¿åãããã«å¿ èŠã§ãã 22200Chã«çããå Žåãããã±ãŒãžãšãããåŠçã§ããŸãã ããã±ãŒãžã®å Žåã¯ãããããããŒã¿ãååŸããå¿ èŠããããŸããããŒã¿ã¯ãŠãŒã¶ãŒã¢ãŒãããéä¿¡ãããŸãã éä¿¡æ¹æ³ãMETHOD_BUFFEREDã®å ŽåãããŒã¿ã¯å ¥åãããã¡ãŒãšåºåãããã¡ãŒã®äž¡æ¹ã§è»¢éã§ããŸãã èšé²ãããšããI / OãããŒãžã£ãŒã¯éããŒãžã·ã¹ãã ããŒã«ã«ã¡ã¢ãªãå²ãåœãŠããŠãŒã¶ãŒããŒã¿ãããã«ã³ããŒããŸãã å²ãåœãŠãããã¡ã¢ãªã®ã¢ãã¬ã¹ã¯ãSystemBufferãã£ãŒã«ãã«æ ŒçŽãããŸãã ãããã£ãŠãCrackmeZN17.exeã®DeviceIoControlé¢æ°ã§ãã°ã€ã³ãšãã¹ã¯ãŒãã転éãããé åºãèæ ®ãããšã次ã®ããã«ãªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/136/b71/5da/136b715da60ea761e587e119afb6071d.png)
æ®ã£ãŠããã®ã¯ããã§ãã¯æ©èœïŒsub_10F60ïŒãå±éããããšã ãã§ãã èå³æ·±ãã®ã¯sub_10EE2é¢æ°ã§ããã®ãµãé¢æ°ã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/f17/de3/743/f17de3743d3e94004155905ca245c507.png)
ããã«é¢æ°sub_10EE2ãMD5ããã·ã¥ãèšç®ããå¯èœæ§ãæãé«ããšä»®å®ã§ããŸãã ããã¯å®æ°ã«ãã£ãŠè¡šç€ºãããŸãã ä»åŸã¯ããããªããšæããŸãã ãGetMd5ããšããååã«å€æŽããŸãããã ããã·ã¥ãèšç®ããåŸãçµæã®å€ã¯sub_10EA2ã«æž¡ãããŸãã é¢æ°ã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/f0a/104/fe9/f0a104fe9574fca74feef868a639e4c1.png)
äžèŠãäœãèµ·ãã£ãŠããã®ãã¯æ確ã§ã¯ãããŸããããå®éã«ã¯ãã¹ãŠãåçŽã§ãã ã 'ãããã@ããé€ããã¹ãŠã®æå0x20ããè«çORãé©çšããŸãã ããã¯ãå°æåã®ã©ãã³æåã®è¿ éãªç¿»èš³ãå®è£ ããŸãã ãã®ããã«ïŒ
![](https://habrastorage.org/getpro/habr/post_images/d98/947/a37/d98947a37e5e7ad39f63126d1109f309.png)
ãããã£ãŠãå察ã®æäœã¯0x5Fã®è«çANDã§ãã
![](https://habrastorage.org/getpro/habr/post_images/270/76e/78b/27076e78b19459ac976b71c7ff51332d.png)
ã€ãŸããsub_10EA2é¢æ°ã¯ã©ãã³æåã®å€§æåå°æåãæžãããããååãtoLowã«å€æŽããŸãã ãã ãããã®æ¹æ³ã¯ããªã«æåã§ã¯æ©èœããŸããã å ¥åèšèªããã§ãã¯ããªãçç±ã¯ãããã«æããã«ãªããŸãã ãã®çµæããã§ãã¯æ©èœã¯æ¬¡ã®ããã«ãªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/4fe/6fb/942/4fe6fb942a4131217f428e7f9ef034e1.png)
toLowé¢æ°ã®å®è¡åŸãããã·ã¥ã®æåã®æåãæåã®å Žåã倧æåã«å€æãããŸãã åŸãããçµæãããMD5ããã·ã¥ãåã³èæ ®ãããçµæãžã®ãã€ã³ã¿ãŒãé åPã«é 眮ãããŸããé åPã®èŠçŽ ã®æ°ã¯32ã§ãïŒããã¯ã«ãŒãçµäºæ¡ä»¶-31è¡ã§ç¢ºèªã§ããŸãïŒã ãã®åŸãæåŸã®å埩ã®MD5ãå ¥åãããããŒã¿ãšæ¯èŒãããŸãã 圌ããäžèŽããå Žåããã®åŸ-åºæ¥äžããïŒ -ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®ãã¢ãæå¹ã§ãïŒ
ããã§ã¯ãã·ãªã¢ã«çæã¢ã«ãŽãªãºã ãèŠçŽããŸãããã
1ïŒãã°ã€ã³ããã®MD5ããã·ã¥ãèæ ®ãããããèšå·åœ¢åŒã«å€æããŸãã
2ïŒããã·ã¥å ã®ãã¹ãŠã®å€§æåãå°ãããªããŸãã
3ïŒããã·ã¥ãæåã§å§ãŸãå Žåãããã¯å€§ãããªããŸãã
4ïŒåä¿¡ããæååããã®MD5ããã·ã¥ã¯32åãšèŠãªãããŸãã ååã圌ã¯æ£ãããã¹ã¯ãŒããæããŠãããŸãã
ãã©ã€ããŒéCrackmeZN17_.sys
ããããåãã§æ¥ãã§ã¯ãããŸããïŒ ãã®ã¢ã«ãŽãªãºã ãå®è£ ãããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã§æå¹ãªãã¢ãéä¿¡ãããšãã·ãªã¢ã«ãééã£ãŠãããšããåçãåãåããŸãã ãªããã åé¡ã¯ã2ã€ã®ãã©ã€ããŒãããããšãå®å šã«å¿ããããšã§ãã ãªã2çªç®ã䜿çšããã®ã§ããïŒ IDAã§ãããéããŠããããäœãããã®ãèŠãŠã¿ãŸãããã
![](https://habrastorage.org/getpro/habr/post_images/86a/105/43a/86a10543a3472590bd312f9ea3f342a5.png)
éèŠïŒããã§ã¯ããã©ã€ããŒã¯ããã€ã¹ãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸããã ãããŠãIoAttachDeviceToDeviceStacké¢æ°ã®åŒã³åºãããå€æãããšããã©ã€ããŒã¯ãã£ã«ã¿ãŒãã©ã€ããŒã§ãããšå®å šã«èšããŸãïŒ
![](https://habrastorage.org/getpro/habr/post_images/81d/292/1cc/81d2921cc9e5095c110a9ba71ff81fc1.png)
ãã®ãã©ã€ããŒã¯ãCrackmeZN17ããã€ã¹ã«éä¿¡ããããã¹ãŠã®IRPãã±ãããæåã«åä¿¡ããŸãã ãããã£ãŠãéäžã§å€æŽããå¯èœæ§ããããŸãã ãªã¯ãšã¹ãããã£ã¹ãããããæ©èœ-sub_10462ã«èå³ããããŸãã éããŠé¢çœãç»åã芳å¯ããŸãã
![](https://habrastorage.org/getpro/habr/post_images/37b/32a/e69/37b32ae698e50431a712a073b30a7c55.png)
誰ããIOCTLã³ãŒã22200Chã§IRPãã±ããã®CrackmeZN17ããã€ã¹ãžã®è»¢éãéå§ããå Žåãããã§ããããã£ããããŸãã éä¿¡ãããããŒã¿ã¯ãã±ããããååŸãããsub_105B2é¢æ°ã®å ¥åã«éãããŸãã ãããŠããã®é¢æ°ã¯æå¹ãªå ¥åããã§ãã¯ããã ãã§ãã ãã®ãµãé¢æ°ãèŠãŠãããã«ãããèŠãŠã¿ãŸãããã
![](https://habrastorage.org/getpro/habr/post_images/b4b/947/f26/b4b947f2629514aee0069564e277f6ae.png)
ãŠãŒã¶ãŒåãŸãã¯ãã¹ã¯ãŒããå«ãè¡ã«ä»ã®æåãå«ãŸããŠããå Žåãsub_10438ãåŒã³åºãããŸããããã«ãããIRPãã±ããã®åŠçããšã©ãŒ-STATUS_INVALID_PARAMETERã§å®äºããŸãã
![](https://habrastorage.org/getpro/habr/post_images/a7f/818/a51/a7f818a51c9fa0652ffe43812c96b015.png)
ãããã£ãŠããã©ã€ããŒãã£ã«ã¿ãŒã¯ãæ£ããããŒã¿ãå«ãIRPãã±ããã®ã¿ãæž¡ããŸãã ãããã以åã®ãã©ã€ããŒã§ã¯ãããšãã°ã¢ã«ãã¡ãããã®èšèªã®ãã§ãã¯ããªãã£ãçç±ã§ãã ãã¹ãŠã®æ¡ä»¶ãæºããããŠããå ŽåãããŒé¢æ°sub_105F8ããã°ã€ã³çšã«åŒã³åºãããsub_10640ããã¹ã¯ãŒãçšã«åŒã³åºãããŸãã åã®ãã©ã€ããŒã§é¢æ°sub_10640ãæ¢ã«èŠãŸããã ãtoLowããšãåŒã³ãŸãã
ä»ã®ãšããsub_105F8ãæ€èšããŠãã ããã
![](https://habrastorage.org/getpro/habr/post_images/0ca/615/4ff/0ca6154ffd05cd9c66f88e5d5f21d365.png)
ããèŠããšããã®é¢æ°ã¯ãè¡ã®æåçªå·ãå¥æ°ã®å Žåã¯å€§æåã§ãæåçªå·ãå¶æ°ã®å Žåã¯å°æåã§æåãé 眮ããããšãæããã«ãªããŸãã
![](https://habrastorage.org/getpro/habr/post_images/f00/73a/ee9/f0073aee9de2a0b5ca1d027dd04293c2.png)
ãã®åŸã®ã¿ãå€æŽãããIRPãã±ããã¯ãIoCallDriverãåŒã³åºããŠã次ã®ããã€ã¹ã«ããã«ãµãŒãã¹ãæäŸããããã«è»¢éãããŸãã ãããåæãšããŠãkeyGenãèšè¿°ããã¯ã©ãã¯ã§ãããå®å šã«è§£æ±ºã§ããŸãã ãã®å Žåã keygenã¯æ¬¡ã®ããã«ãªããŸãã
import sys import hashlib def is_hex_number(str): try: arr1 = int("".join(str), 16) return True except ValueError: return False def getLogin(login): result = "" j = 0 for i in login: if j & 1 == 0: result = result + i.lower() else: result = result + i.upper() j = j+1 return result def getPass(login): m = hashlib.md5() m.update(login) tmp = m.hexdigest() login = tmp result = "" i = 0 while i < 32: login = login.lower() if ord(login[i]) <= ord('z') and ord(login[i]) >= ord('a'): login = login[:i] + chr(ord(login[i]) & 0xDF) + login[i+1:] m = hashlib.md5() m.update(login) tmp = m.hexdigest() #print tmp result = result + tmp[i] i = i+1 return result def keyGen(argv): email = argv[1] #filter changed login = getLogin(email) flag = getPass(login) return flag def main(argv): try: print keyGen(argv) except: print('Usage: keygen <login>') if __name__ == "__main__": main(sys.argv)
![](https://habrastorage.org/getpro/habr/post_images/34c/ef5/e65/34cef5e6526cfd858a56b9ab2bdc08b2.png)
![](https://habrastorage.org/getpro/habr/post_images/aee/1c9/788/aee1c9788cee4520e3cd09935a9cc076.png)
ããã·ã§ã³ã®äŒŽå¥ïŒ ãã®åé¡ã解決ããã®ã«3æéããããŸããããããã¯æ£ç¢ºã§ã¯ãããŸããã
èªåã®åŒ·ãã®ãã¹ãã«å ããŠãéã«ä»ã®å€ãã®èå³æ·±ã課é¡ããããŸãã ããšãã°ãWebã¢ããªã±ãŒã·ã§ã³ã®è匱æ§ã®æ€çŽ¢ãšæªçšã crackmeãœãªã¥ãŒã·ã§ã³ã䜿çšãããšããŠã€ã«ã¹ã¢ããªã¹ããã»ãã¥ãªãã£ã¬ã·ãŒããŒãªãã§ã¯ã§ããªããªããŒã¹ã¹ãã«ã掻çšã§ããŸãã ãŸããã¯ã©ããã³ã°ã¯ãæäžäœã¬ãã«ã§ããã°ã©ã ãŸãã¯èª¿æ»å¯Ÿè±¡ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããã€ã¹ã«ã€ããŠã®ç解ãäžããŸããããã¯ãã·ã¹ãã ããã°ã©ãã³ã°ã§ãã°ãã°å¿ èŠã§ãã
ãŸããç§ãã¡ã¯ããã«ãã®äºè£ã«éåžžã«è¿ éã«å¯ŸåŠããŸããããççŽã«èšã£ãŠããã®åã«ãç§ãã¡ã¯å€ãã®èšç·ŽãããŸããã Kryakmiã¯ã5åŠæã®åªãããã¬ãŒããŒã§ãããããã£ãŠãå°æ¥ã®Uyathetesã¯ãå°éç¥èãåŸãããã«ãå€ãã®åé¡ã解決ããå¿ èŠããããŸãã ç§ãã¡ã¯ã¢ã¹ã¯ã¯ã®åŠæ ¡HackerU Professional Pentesterã® 9ãæéã®ãã«ã¿ã€ã ã³ãŒã¹ã«ç»é²ããŠããŸãã å ¥éã³ãŒã¹ã®æé«ã®åŠçã¯ãå匷ãç¶ããäºå¹Žçã®è·æ¥ãåãããã¡ã³ã®ããã ãã§ãªãããéã皌ãããã«ãã¯ã©ãã¯ãè¡ãããšãã§ããŸãã