ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ããŒã«ãšåºæ¬çãªæ¹æ³
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã
ImGuiããŒã¹ã®ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ããŒã«
ãœãããŠã§ã¢:
- ReverseKit: https://github.com/zer0condition/ReverseKit
Wasmãã³ã³ãã€ã© / Watã³ã³ãã€ã©
ãªã³ã©ã€ã³:
- https://webassembly.github.io/wabt/demo/wasm2wat/index.htmlã䜿çšããŠãã³ã³ãã€ã«ããŸãïŒwasmïŒãã€ããªïŒããwatïŒã¯ãªã¢ããã¹ãïŒãžïŒ
- https://webassembly.github.io/wabt/demo/wat2wasm/ã䜿çšããŠã³ã³ãã€ã«ããŸãïŒwatããwasmãžïŒ
- https://wwwg.github.io/web-wasmdec/ã䜿çšããŠãã³ã³ãã€ã«ããããšãã§ããŸã
ãœãããŠã§ã¢:
.NETãã³ã³ãã€ã©
dotPeek
dotPeekã¯ãã©ã€ãã©ãªïŒ.dllïŒãWindowsã¡ã¿ããŒã¿ãã¡ã€ã«ïŒ.winmdïŒãããã³å®è¡å¯èœãã¡ã€ã«ïŒ.exeïŒãå«ãè€æ°ã®ãã©ãŒãããããã³ã³ãã€ã«ããã³æ€æ»ãããã³ã³ãã€ã©ã§ãããã³ã³ãã€ã«ãããåŸãã¢ã»ã³ããªã¯Visual Studioãããžã§ã¯ãïŒ.csprojïŒãšããŠä¿åã§ããŸãã
ããã§ã®å©ç¹ã¯ã倱ããããœãŒã¹ã³ãŒããã¬ã¬ã·ãŒã¢ã»ã³ããªãã埩å ããå¿ èŠãããå Žåããã®ã¢ã¯ã·ã§ã³ãæéãç¯çŽã§ããããšã§ããããã«ãdotPeekã¯ãã³ã³ãã€ã«ãããã³ãŒãå šäœã䟿å©ã«ããã²ãŒãã§ãããããXamarinã¢ã«ãŽãªãºã åæã«æé©ãªããŒã«ã®1ã€ã§ãã
.NET Reflector
å æ¬çãªã¢ãã€ã³ã¢ãã«ãšãããŒã«ãæ£ç¢ºãªããŒãºã«åãããŠæ¡åŒµããAPIãåãã.NET Reflectorã¯ãæéãç¯çŽããéçºãç°¡çŽ åããŸãããã®ããŒã«ãæäŸããéãšã³ãžãã¢ãªã³ã°ãµãŒãã¹ã®è±å¯ããèŠãŠã¿ãŸãããïŒ
- ã©ã€ãã©ãªãã³ã³ããŒãã³ããéããŠããŒã¿ãã©ã®ããã«æµãããã®æŽå¯ãæäŸ
- .NETèšèªããã¬ãŒã ã¯ãŒã¯ã®å®è£ ãšäœ¿çšã«é¢ããæŽå¯ãæäŸ
- 䜿çšãããŠããAPIãæè¡ããããå€ãã®æ©èœãåŒãåºãããã«ãææžåãããŠããªãæ©èœãå ¬éãããŠããªãæ©èœãèŠã€ãã
- äŸåé¢ä¿ãç°ãªãã¢ã»ã³ããªãèŠã€ãã
- ã³ãŒãããµãŒãããŒãã£ã³ã³ããŒãã³ããããã³ã©ã€ãã©ãªå ã®ãšã©ãŒã®æ£ç¢ºãªå Žæã远跡
- ããªããæ±ããã¹ãŠã®.NETã³ãŒãã®ãœãŒã¹ããããã°
ILSpy & dnSpy
Visual Studio CodeçšILSpyãã©ã°ã€ã³: ã©ã®OSã§ã䜿çšã§ããŸãïŒVSCodeããçŽæ¥ã€ã³ã¹ããŒã«ã§ããŸããgitãããŠã³ããŒãããå¿
èŠã¯ãããŸããããæ¡åŒµæ©èœããã¯ãªãã¯ãããILSpyããæ€çŽ¢ããŠãã ããïŒã
ãã³ã³ãã€ã«ãä¿®æ£ãããã³åã³ã³ãã€ã«ããå¿
èŠãããå Žåã¯ãdnSpyãŸãã¯ãã®ã¢ã¯ãã£ãã«ã¡ã³ããã³ã¹ãããŠãããã©ãŒã¯ã§ããdnSpyExã䜿çšã§ããŸããïŒå³ã¯ãªã㯠-> ã¡ãœãããä¿®æ£ããŠé¢æ°å
ã®äœãã倿ŽããŸãïŒã
DNSpyãã®ã³ã°
DNSpyã«ãã¡ã€ã«ã«æ å ±ããã°ãããããã«ããã®ã¹ããããã䜿çšã§ããŸãïŒ
using System.IO;
path = "C:\\inetpub\\temp\\MyTest2.txt";
File.AppendAllText(path, "Password: " + password + "\n");
DNSpy ãããã°
DNSpyã䜿çšããŠã³ãŒãããããã°ããã«ã¯ã次ã®ããšãè¡ãå¿ èŠããããŸãã
ãŸãããããã°ã«é¢é£ããã¢ã»ã³ããªå±æ§ã倿ŽããŸãïŒ
.png)
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
ç³ãèš³ãããŸãããããã®ãªã¯ãšã¹ãã«ã¯ãå¿ãã§ããŸããã
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations |
DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints |
DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
ãããŠãã³ã³ãã€ã«ãã¯ãªãã¯ããŸãïŒ
 (1).png)
次ã«ã_ãã¡ã€ã« >> ã¢ãžã¥ãŒã«ãä¿åâŠ_ãéããŠæ°ãããã¡ã€ã«ãä¿åããŸãïŒ
.png)
ããã¯å¿ èŠã§ãããªããªãããããè¡ããªããšãã©ã³ã¿ã€ã äžã«ããã€ãã®æé©åãã³ãŒãã«é©çšããããããã°äžã«ãã¬ãŒã¯ãã€ã³ããæ±ºããŠãããããªãããããã€ãã®å€æ°ãååšããªãå¯èœæ§ãããããã§ãã
次ã«ãããªãã®.NETã¢ããªã±ãŒã·ã§ã³ãIISã«ãã£ãŠå®è¡ãããŠããå Žåãæ¬¡ã®ã³ãã³ãã§åèµ·åã§ããŸãïŒ
iisreset /noforce
ãã®åŸããããã°ãéå§ããã«ã¯ããã¹ãŠã®éããŠãããã¡ã€ã«ãéããDebug Tabå ã§**Attach to ProcessâŠ**ãéžæããŸãïŒ
.png)
次ã«ãIIS serverã«ã¢ã¿ããããããã«w3wp.exeãéžæããattachãã¯ãªãã¯ããŸãïŒ
.png)
ããã»ã¹ã®ãããã°ãè¡ã£ãŠããã®ã§ã次ã¯ããã忢ãããã¹ãŠã®ã¢ãžã¥ãŒã«ãããŒãããæéã§ãããŸããDebug >> Break All_ãã¯ãªãã¯ããæ¬¡ã«Debug >> Windows >> Modules_ãã¯ãªãã¯ããŸãïŒ
.png)
.png)
Modulesã®ä»»æã®ã¢ãžã¥ãŒã«ãã¯ãªãã¯ããOpen All ModulesãéžæããŸãïŒ
.png)
Assembly Explorerå ã®ä»»æã®ã¢ãžã¥ãŒã«ãå³ã¯ãªãã¯ããSort Assembliesãã¯ãªãã¯ããŸãïŒ
.png)
Java decompiler
https://github.com/skylot/jadx
https://github.com/java-decompiler/jd-gui/releases
DLLã®ãããã°
IDAã䜿çš
- Load rundll32 (64ãããã¯C:\Windows\System32\rundll32.exeã32ãããã¯C:\Windows\SysWOW64\rundll32.exe)
- Windbgãããã¬ãéžæ
- âSuspend on library load/unloadâãéžæ
.png)
- å®è¡ã®parametersãèšå®ããDLLã®ãã¹ãšåŒã³åºããã颿°ãæå®ããŸãïŒ
.png)
ãã®åŸããããã°ãéå§ãããšãåDLLãããŒãããããšå®è¡ã忢ããŸããæ¬¡ã«ãrundll32ãããªãã®DLLãããŒããããšãå®è¡ã忢ããŸãã
ããããããŒããããDLLã®ã³ãŒãã«ã©ããã£ãŠã¢ã¯ã»ã¹ã§ããŸããïŒãã®æ¹æ³ã§ã¯ãç§ã¯ããããŸããã
x64dbg/x32dbgã䜿çš
- Load rundll32 (64ãããã¯C:\Windows\System32\rundll32.exeã32ãããã¯C:\Windows\SysWOW64\rundll32.exe)
- Command Lineãå€æŽ (File â> Change Command Line)ããDLLã®ãã¹ãšåŒã³åºããã颿°ãèšå®ããŸããäŸãã°ïŒâC:\Windows\SysWOW64\rundll32.exeâ âZ:\shared\Cybercamp\rev2\\14.ridii_2.dllâ,DLLMain
- _Options â> Settings_ã倿ŽããâDLL EntryâãéžæããŸãã
- 次ã«ãå®è¡ãéå§ããŸãããããã¬ã¯åDLLã®ã¡ã€ã³ã§åæ¢ããããæç¹ã§ããªãã®DLLã®DLLãšã³ããªã§åæ¢ããŸããããããããã¬ãŒã¯ãã€ã³ããèšå®ããããã€ã³ããæ€çŽ¢ããŸãã
å®è¡ãäœããã®çç±ã§win64dbgã§åæ¢ããå Žåãwin64dbgãŠã£ã³ããŠã®äžéšã§ã©ã®ã³ãŒããèŠãŠãããã確èªã§ããŸãïŒ
.png)
ãã®åŸãå®è¡ã忢ããDLLããããã°ããããšãã§ããŸãã
GUIã¢ã㪠/ ãããªã²ãŒã
Cheat Engineã¯ãå®è¡äžã®ã²ãŒã ã®ã¡ã¢ãªå ã«éèŠãªå€ãä¿åãããŠããå ŽæãèŠã€ããŠå€æŽããã®ã«åœ¹ç«ã€ããã°ã©ã ã§ãã詳现ã¯ä»¥äžã«ãããŸãïŒ
PiNCEã¯ãGNU Project Debugger (GDB)ã®ããã³ããšã³ã/ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ããŒã«ã§ãã²ãŒã ã«ç¹åããŠããŸãããã ãããªããŒã¹ãšã³ãžãã¢ãªã³ã°ã«é¢é£ããä»»æã®äœæ¥ã«ã䜿çšã§ããŸãã
Decompiler Explorerã¯ãããã€ãã®ãã³ã³ãã€ã©ãžã®ãŠã§ãããã³ããšã³ãã§ãããã®ãŠã§ããµãŒãã¹ã䜿çšãããšãå°ããªå®è¡å¯èœãã¡ã€ã«ã«å¯Ÿããç°ãªããã³ã³ãã€ã©ã®åºåãæ¯èŒã§ããŸãã
ARM & MIPS
Shellcodes
blobrunnerã䜿çšããã·ã§ã«ã³ãŒãã®ãããã°
Blobrunnerã¯ãã·ã§ã«ã³ãŒããã¡ã¢ãªã®ã¹ããŒã¹å
ã«å²ãåœãŠãã·ã§ã«ã³ãŒããå²ãåœãŠãããã¡ã¢ãªã¢ãã¬ã¹ã瀺ããå®è¡ã忢ããŸãã
ãã®åŸãããã»ã¹ã«ãããã¬ïŒIdaãŸãã¯x64dbgïŒãã¢ã¿ããããæå®ãããã¡ã¢ãªã¢ãã¬ã¹ã«ãã¬ãŒã¯ãã€ã³ããèšå®ããå®è¡ãåéããŸããããã«ãããã·ã§ã«ã³ãŒãããããã°ã§ããŸãã
ãªãªãŒã¹ã®GitHubããŒãžã«ã¯ãã³ã³ãã€ã«ããããªãªãŒã¹ãå«ãZIPãã¡ã€ã«ããããŸãïŒhttps://github.com/OALabs/BlobRunner/releases/tag/v0.0.5
Blobrunnerã®ãããã«ä¿®æ£ãããããŒãžã§ã³ã¯ã以äžã®ãªã³ã¯ã§èŠã€ããããšãã§ããŸããã³ã³ãã€ã«ããã«ã¯ãVisual Studio Codeã§C/C++ãããžã§ã¯ããäœæããã³ãŒããã³ããŒïŒããŒã¹ãããŠãã«ãããŸãã
jmp2itã䜿çšããã·ã§ã«ã³ãŒãã®ãããã°
jmp2it ã¯ãblobrunnerã«éåžžã«äŒŒãŠããŸããã·ã§ã«ã³ãŒããã¡ã¢ãªã®ã¹ããŒã¹å ã«å²ãåœãŠãæ°žé ã®ã«ãŒããéå§ããŸãããã®åŸãããã»ã¹ã«ãããã¬ãã¢ã¿ããããåçãéå§ããŠ2-5ç§åŸ ã¡ãåæ¢ãæŒããšãæ°žé ã®ã«ãŒãã®äžã«ããããšã«ãªããŸããæ°žé ã®ã«ãŒãã®æ¬¡ã®åœä»€ã«ãžã£ã³ããããšããããã·ã§ã«ã³ãŒããžã®åŒã³åºãã«ãªããŸãããããŠæçµçã«ãã·ã§ã«ã³ãŒããå®è¡ããŠããããšã«ãªããŸãã
.png)
ã³ã³ãã€ã«ãããããŒãžã§ã³ã¯ããªãªãŒã¹ããŒãžããããŠã³ããŒãã§ããŸãã
Cutterã䜿çšããã·ã§ã«ã³ãŒãã®ãããã°
Cutterã¯ãradareã®GUIã§ããCutterã䜿çšãããšãã·ã§ã«ã³ãŒãããšãã¥ã¬ãŒãããåçã«æ€æ»ã§ããŸãã
Cutterã¯ããã¡ã€ã«ãéãããšãã·ã§ã«ã³ãŒããéãããèš±å¯ããŸããç§ã®å Žåãã·ã§ã«ã³ãŒãããã¡ã€ã«ãšããŠéããšæ£ãããã³ã³ãã€ã«ãããŸããããã·ã§ã«ã³ãŒããšããŠéããšããã§ã¯ãããŸããã§ããïŒ
.png)
ãšãã¥ã¬ãŒã·ã§ã³ãéå§ãããå Žæã«ãã¬ãŒã¯ãã€ã³ããèšå®ãããšãCutterã¯ããããèªåçã«ãšãã¥ã¬ãŒã·ã§ã³ãéå§ããŸãïŒ
.png)
.png)
äŸãã°ã16é²ãã³ãå ã§ã¹ã¿ãã¯ãèŠãããšãã§ããŸãïŒ
.png)
ã·ã§ã«ã³ãŒãã®é£èªåè§£é€ãšå®è¡ããã颿°ã®ååŸ
scdbgã詊ããŠã¿ãã¹ãã§ãã
ããã¯ãã·ã§ã«ã³ãŒãã䜿çšããŠãã颿°ããã·ã§ã«ã³ãŒããã¡ã¢ãªå
ã§èªå·±ãã³ãŒãããŠãããã©ãããæããŠãããŸãã
scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run
scdbg.exe -f shellcode -i -r #enable interactive hooks (file and network) and show analysis report at end of run
scdbg.exe -f shellcode -d #Dump decoded shellcode
scdbg.exe -f shellcode /findsc #Find offset where starts
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
scDbgã«ã¯ãéžæãããªãã·ã§ã³ãéžãã§ã·ã§ã«ã³ãŒããå®è¡ã§ããã°ã©ãã£ã«ã«ã©ã³ãã£ãŒããããŸãã
.png)
Create Dumpãªãã·ã§ã³ã¯ãã¡ã¢ãªå ã§ã·ã§ã«ã³ãŒãã«åçã«å€æŽãå ããããå Žåã«æçµçãªã·ã§ã«ã³ãŒãããã³ãããŸãïŒãã³ãŒããããã·ã§ã«ã³ãŒããããŠã³ããŒãããã®ã«äŸ¿å©ã§ãïŒãstart offsetã¯ãç¹å®ã®ãªãã»ããã§ã·ã§ã«ã³ãŒããéå§ããã®ã«åœ¹ç«ã¡ãŸããDebug Shellãªãã·ã§ã³ã¯ãscDbgã¿ãŒããã«ã䜿çšããŠã·ã§ã«ã³ãŒãããããã°ããã®ã«äŸ¿å©ã§ãããIdaãx64dbgã䜿çšã§ãããããåè¿°ã®ãªãã·ã§ã³ã®æ¹ããã®ç®çã«ã¯é©ããŠãããšæããŸãã
CyberChefã䜿çšããéã¢ã»ã³ãã«
ã·ã§ã«ã³ãŒããã¡ã€ã«ãå ¥åãšããŠã¢ããããŒãããæ¬¡ã®ã¬ã·ãã䜿çšããŠéã³ã³ãã€ã«ããŸã: https://gchq.github.io/CyberChef/#recipe=To_Hex(âSpaceâ,0)Disassemble_x86(â32â,âFull%20x86%20architectureâ,16,0,true,true)
Movfuscator
ãã®é£èªåããŒã«ã¯ããã¹ãŠã®movåœä»€ãä¿®æ£ããŸãïŒæ¬åœã«ã¯ãŒã«ã§ãïŒããŸããå®è¡ãããŒã倿Žããããã«å²ã蟌ã¿ã䜿çšããŸããã©ã®ããã«æ©èœãããã«ã€ããŠã®è©³çްæ
å ±:
- https://www.youtube.com/watch?v=2VF_wPkiBJY
- https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas_2015_the_movfuscator.pdf
éãè¯ããã°ãdemovfuscatorããã€ããªãããªããã¹ã±ãŒãããŸããããã€ãã®äŸåé¢ä¿ããããŸãã
apt-get install libcapstone-dev
apt-get install libz3-dev
And install keystone (apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install)
ããCTFããã¬ã€ããŠãããªãããã©ã°ãèŠã€ããããã®ãã®åé¿çã¯éåžžã«åœ¹ç«ã€ãããããŸãã: https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html
Rust
ãšã³ããªãŒãã€ã³ããèŠã€ããã«ã¯ã::mainã§é¢æ°ãæ€çŽ¢ããŸã:
.png)
ãã®å Žåããã€ããªã¯authenticatorãšåŒã°ããŠããã®ã§ãããã¯è峿·±ãã¡ã€ã³é¢æ°ã§ããããšã¯æããã§ãã
åŒã³åºãããŠãã颿°ã®ååãæã£ãŠããã®ã§ãã€ã³ã¿ãŒãããã§ããããæ€çŽ¢ããŠå
¥åãšåºåã«ã€ããŠåŠã³ãŸãã
Delphi
Delphiã§ã³ã³ãã€ã«ããããã€ããªã«ã¯ãhttps://github.com/crypto2011/IDRã䜿çšã§ããŸãã
Delphiãã€ããªããªããŒã¹ããå¿ èŠãããå Žåã¯ãIDAãã©ã°ã€ã³https://github.com/Coldzer0/IDA-For-Delphiã䜿çšããããšããå§ãããŸãã
ATL+f7ãæŒããŠïŒIDAã«Pythonãã©ã°ã€ã³ãã€ã³ããŒãïŒPythonãã©ã°ã€ã³ãéžæããŸãã
ãã®ãã©ã°ã€ã³ã¯ããã€ããªãå®è¡ãããããã°ã®éå§æã«é¢æ°åãåçã«è§£æ±ºããŸãããããã°ãéå§ããåŸãå床ã¹ã¿ãŒããã¿ã³ïŒç·ã®ãã¿ã³ãŸãã¯f9ïŒãæŒããšãå®éã®ã³ãŒãã®æåã§ãã¬ãŒã¯ãã€ã³ãããããããŸãã
ãŸããã°ã©ãã£ãã¯ã¢ããªã±ãŒã·ã§ã³ã§ãã¿ã³ãæŒããšããããã¬ããã®ãã¿ã³ã«ãã£ãŠå®è¡ããã颿°ã§åæ¢ãããããéåžžã«è峿·±ãã§ãã
Golang
Golangãã€ããªããªããŒã¹ããå¿ èŠãããå Žåã¯ãIDAãã©ã°ã€ã³https://github.com/sibears/IDAGolangHelperã䜿çšããããšããå§ãããŸãã
ATL+f7ãæŒããŠïŒIDAã«Pythonãã©ã°ã€ã³ãã€ã³ããŒãïŒPythonãã©ã°ã€ã³ãéžæããŸãã
ããã«ããã颿°ã®ååã解決ãããŸãã
Compiled Python
ãã®ããŒãžã§ã¯ãELF/EXEã§ã³ã³ãã€ã«ãããPythonãã€ããªããPythonã³ãŒããååŸããæ¹æ³ãèŠã€ããããšãã§ããŸã:
Decompile compiled python binaries (exe, elf) - Retreive from .pyc
GBA - Game Body Advance
GBAã²ãŒã ã®ãã€ããªãååŸããå ŽåãããŸããŸãªããŒã«ã䜿çšããŠãšãã¥ã¬ãŒãããã³ãããã°ã§ããŸã:
- no$gba (ãããã°çãããŠã³ããŒã) - ã€ã³ã¿ãŒãã§ãŒã¹ãæã€ãããã¬ãå«ã
- mgba - CLIãããã¬ãå«ã
- gba-ghidra-loader - Ghidraãã©ã°ã€ã³
- GhidraGBA - Ghidraãã©ã°ã€ã³
no$gbaã®äžã§ãOptions â> Emulation Setup â> Controls** ãéžæãããšãã²ãŒã ããŒã€ã¢ããã³ã¹ã®ãã¿ã³**ãæŒãæ¹æ³ã衚瀺ãããŸãã
.png)
æŒããããšãåããŒã«ã¯èå¥ããããã®å€ããããŸã:
A = 1
B = 2
SELECT = 4
START = 8
RIGHT = 16
LEFT = 32
UP = 64
DOWN = 128
R = 256
L = 256
ãã®çš®ã®ããã°ã©ã ã§ã¯ãè峿·±ãéšåã¯ããã°ã©ã ããŠãŒã¶ãŒå ¥åãã©ã®ããã«åŠçãããã§ããã¢ãã¬ã¹0x4000130ã«ã¯ãäžè¬çã«èŠããã颿°KEYINPUTããããŸãã
.png)
åã®ç»åã§ã¯ã颿°ãFUN_080015a8ããåŒã³åºãããŠããã®ãããããŸãïŒã¢ãã¬ã¹: 0x080015fa ãš 0x080017acïŒã
ãã®é¢æ°ã§ã¯ãããã€ãã®åæåæäœã®åŸïŒéèŠã§ã¯ãªãïŒ:
void FUN_080015a8(void)
{
ushort uVar1;
undefined4 uVar2;
undefined4 uVar3;
ushort uVar4;
int iVar5;
ushort *puVar6;
undefined *local_2c;
DISPCNT = 0x1140;
FUN_08000a74();
FUN_08000ce4(1);
DISPCNT = 0x404;
FUN_08000dd0(&DAT_02009584,0x6000000,&DAT_030000dc);
FUN_08000354(&DAT_030000dc,0x3c);
uVar4 = DAT_030004d8;
ãã®ã³ãŒããèŠã€ãããŸãã:
do {
DAT_030004da = uVar4; //This is the last key pressed
DAT_030004d8 = KEYINPUT | 0xfc00;
puVar6 = &DAT_0200b03c;
uVar4 = DAT_030004d8;
do {
uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
æåŸã®ifã¯**uVar4ãæåŸã®ããŒã«ãããçŸåšã®ããŒã§ã¯ãªãããšã確èªããŠããŸããçŸåšã®ããŒã¯uVar1**ã«ä¿åãããŠããŸãã
if (uVar1 == 4) {
DAT_030000d4 = 0;
uVar3 = FUN_08001c24(DAT_030004dc);
FUN_08001868(uVar2,0,uVar3);
DAT_05000000 = 0x1483;
FUN_08001844(&DAT_0200ba18);
FUN_08001844(&DAT_0200ba20,&DAT_0200ba40);
DAT_030000d8 = 0;
uVar4 = DAT_030004d8;
}
else {
if (uVar1 == 8) {
if (DAT_030000d8 == 0xf3) {
DISPCNT = 0x404;
FUN_08000dd0(&DAT_02008aac,0x6000000,&DAT_030000dc);
FUN_08000354(&DAT_030000dc,0x3c);
uVar4 = DAT_030004d8;
}
}
else {
if (DAT_030000d4 < 8) {
DAT_030000d4 = DAT_030000d4 + 1;
FUN_08000864();
if (uVar1 == 0x10) {
DAT_030000d8 = DAT_030000d8 + 0x3a;
åã®ã³ãŒãã§ã¯ãuVar1ïŒæŒããããã¿ã³ã®å€ãæ ŒçŽãããŠããå ŽæïŒãããã€ãã®å€ãšæ¯èŒããŠããŸãïŒ
- æåã«ãå€4ïŒSELECTãã¿ã³ïŒãšæ¯èŒãããŠããŸãïŒãã®ãã£ã¬ã³ãžã§ã¯ããã®ãã¿ã³ã¯ç»é¢ãã¯ãªã¢ããŸãã
- 次ã«ãå€8ïŒSTARTãã¿ã³ïŒãšæ¯èŒãããŠããŸãïŒãã®ãã£ã¬ã³ãžã§ã¯ãã³ãŒãããã©ã°ãååŸããã®ã«æå¹ãã©ããã確èªããŸãã
- ãã®å Žåã倿°**
DAT_030000d8**ã¯0xf3ãšæ¯èŒãããå€ãåãã§ããã°ããã€ãã®ã³ãŒããå®è¡ãããŸãã - ãã®ä»ã®ã±ãŒã¹ã§ã¯ãããã€ãã®ã«ãŠã³ãïŒ
DAT_030000d4ïŒããã§ãã¯ãããŸããããã¯ãã³ãŒãã«å ¥ã£ãçŽåŸã«1ãå ç®ãããããã«ãŠã³ãã§ãã
8æªæºã®å ŽåãDAT_030000d8ã«å€ãå ç®ããããšãè¡ãããŸãïŒåºæ¬çã«ã¯ãã«ãŠã³ãã8æªæºã®éãæŒãããããŒã®å€ããã®å€æ°ã«å ç®ããŠããŸãïŒã
ãããã£ãŠããã®ãã£ã¬ã³ãžã§ã¯ããã¿ã³ã®å€ãç¥ã£ãŠããå¿ èŠããããåèšã0xf3ã«ãªãããã«8æªæºã®é·ãã®çµã¿åãããæŒãå¿ èŠããããŸãã
ãã®ãã¥ãŒããªã¢ã«ã®åèæç®ïŒ https://exp.codes/Nostalgia/
Game Boy
ã³ãŒã¹
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABDïŒãã€ããªã®é£èªåè§£é€ïŒ
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã


