Skip to content
View in the app

A better way to browse. Learn more.

Tuts 4 You

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Leaderboard

Popular Content

Showing content with the highest reputation since 01/28/2026 in Posts

  1. dr4gan
    https://dr4gan0x.github.io/dr4gan-portfolio/?post=prometheus-12-layers I hope this write up catches your interest
  2. dr4gan
    Threw this into Binary Ninja, turned out to be Rust-compiled ELF64 PIE not C as DiE claims, debug strings like src/main.rs src/vm/dispatcher.rs src/crypto/sbox.rs give it away, main at 0x41bea0 is just the lang_start trampoline real logic sits in sub_41a0c0 which drops into the verification orchestrator sub_418a10 running all 12 layers with bitwise AND accumulation no early exits, layers 1-3 are RDTSC delta and clock_gettime CLOCK_MONOTONIC anti-debug gates, 4-5-6 enforce the 28-char [A-Z0-9_] format with underscores pinned at positions 10/15/23 last 4 digits only and ASCII sum exactly 1901, identified the core hash at sub_433b80 as SipHash-2-4 from the init vectors 0x736f6d6570736575 0x646f72616e646f6d 0x6c7967656e657261 0x7465646279746573 aka "somepseudorandomlygeneratedbytes" with rotation constants 13/32/16/21/17/32 two rounds per block four at finalization, the actual crack comes from Layer 10 which splits the key into four 7-byte segments each hashed with independent k0/k1 pairs reducing the search space from 36^24 down to 4x36^6 roughly 2^33 which is the single architectural weakness in the design, brute-forced the last 4 digits first against Layer 6s YEARHASH/KEY01020 keys in 10K iterations got 2026 then segment 4 in 1.3K then segments 2 and 3 each in ~2.2B iterations then segment 1 with sum-constraint pruning total 55 seconds single core, validated against all remaining layers including the full-key SipHash triplet layers 7/8/9 with three different key pairs and the polynomial evaluation through MurmurHash3 fmix64 at five prime evaluation points all passed clean, key is PR0M3TH3U5_F1R3_ST34L3R_2026, I have a full writeup sitting around too lazy to format it properly but if anyone wants I can publish it
  3. kao
    I was not able to download your firmware completely (Catbox seems to be having problems today) but I can give you some tips anyway. Step 1: It's unlikely that you've encountered a very unique hardware that has no existing tooling or documentation. Also a lot of hardware is made by the same OEM manufacturer in China and just sold under different brand names. So, use Google. Seriously. :) First few kilobytes of your firmware contain plenty of interesting and unique strings. Search for each one separately, or some combination of them. You're basically looking for the information about your hardware - CPU and system board manufacturer, addon boards, sensor information, and so on. You'll be amazed how much information a single search can provide. You could also search for the hardware make/model (which unfortunately you didn't tell us) or FCC ID. Step 2: Once you know the basic hardware information, use Google again. Look for tools and SDKs for the specific manufacturer/CPU. Use Google Translate to browse Chinese and Russian sites - they are a goldmine when it comes to hardware hacking and documentation. You should be able to find this github project. too. I didn't run the tool but a quick look at the source code tells me it should unpack your firmware with little to no modifications. Step 3: Load the unpacked firmware in Ghidra/IDA and start the actual reverse engineering process. :)
  4. Ellvis
    The crackmes.one CTF is officially live, built by the RE community, for the RE community. https://crackmesone.ctfd.io/ Start at: Sat 14 February 2026 00:00:00 UTC Enter the matrix and prove your skills. See you there!
  5. dr4gan
    Hello. I have organised it in two different formats. I also added the modified solver.c file as an extra. Thank you. Link: drive
  6. unpacker1
    This one is an interesting sample. Code is really small, so it was stolen completely, thus it's hard to tell app code from protector code. Functional code is quite simple, just MessageBoxA. And that's it, it does nothing more. After showing the message box it starts freeing memory that definitely isn't app code. But for the sake of completeness let's get to the bottom of this. We have 8 more code bytes. And we have 1 reloc pointing there, meaning ExitProcess should perfectly fit in. Unpacked file attached with code, import and relocs restored and sections cut. unpacked.exe
  7. HostageOfCode
    Here my unpacked. CFF Explorer_unprotected.7z
  8. Teddy Rogers
    Thank you very much, appreciate the PDF copy and extras! Ted.
  9. HostageOfCode
    Bypassed the license check but unpack is too complicated. The imports are very heavy wrapped. Can do it but few hours manual work will need.
  10. Teddy Rogers
    Thank you very much for detailing the solution and method/s taken to solve. Would it be possible to get a PDF copy please? Ted.
  11. harps1ch0rd
    I would appreciate a full writeup! Also, please consider publishing your solve to crackmes.one, where the author cross-posted this challenge.
  12. kiran
    issue resolved by adding private readonly DataEncryption _encrypt = new DataEncryption();
  13. rafaelcoisa
    I also thought that was fornicationed up.
  14. RADIOX
    2 points
    Interesting 🌝 this is reminded me to the old days, is it possible to create a tutorial video I don't see good unpacking tutorials theses days
  15. fReestYler
    Themida v3.1.4 (x32 & x64) - Impossible Two files are protected with an old version Themida (3.1.4) Entry Point is virtualized Just find and restore OEP, recover the IAT and unpack if it possible Virustotal detects it as a virus, but my AV software is not File Information Submitter fReestYler Submitted 05/10/2025 Category UnPackMe View File
  16. unpacker1
    This one is quite easy or easy protection options were chosen. Import isn't redirected. EP code is restored, sections are cut, resources rebuilt. Had to cut it in 2 parts. unpacked.part1.rar And part 2. unpacked.part2.rar
  17. hekliet
    Just wanted to post my solution here for anyone who might stumble upon this thread. GitHubGitHub - hekliet/tsrh-kgm: Keygen for TSRh TeaM Trial Key...Keygen for TSRh TeaM Trial KeygenMe #1. Contribute to hekliet/tsrh-kgm development by creating an account on GitHub.The 'keygen' provided in this repo is a simple command line program that takes a line of input (the username) from stdin and prints a regcode. It should compile anywhere. MSVC users might have to substitute getline with gets or something, I don't know. A keygen that looks pretty and plays music can be found here: https://hekliet.nekoweb.org/tsrh-kgm/tsrh-kgm1-keygen.zip It's a Win32 executable that also works in Windows x64 and was coded on Linux using MinGW. No video, sorry.
  18. HostageOfCode
  19. Price
    Hi Codexplorer, First of all, I wanted to say a huge thank you for your work on the Unlicense project and for sharing your compiled version/updates. It’s an incredible resource for the community. I've been testing the tool on some specific WinLicense 3.x protected targets (specifically 32-bit/x86 binaries). While the tool works great on many samples, I encountered a few hurdles with recent Python/LIEF environments and x86 targets that might be worth looking into for a future improvement: LIEF Compatibility: Recent versions of LIEF (0.17+) seem to have changed some attributes (like MACHINE_TYPES moving to Header.MACHINE_TYPES) and now return section names as bytes instead of strings, causing TypeErrors in dump_utils.py. Frida RPC Stability on x86: I've noticed frequent TypeError: not a function errors during the setupOepTracing or enumerateModuleRanges calls when targeting x86 apps on Windows 10/11. This often leads to AccessViolation because the IAT resolution gets interrupted or fails to map correctly. Forced IAT/OEP: On some complex targets, adding a more robust "forced mode" for OEP and IAT (bypassing the Frida instrumentation if the user already knows the addresses) helped me get further, but a native implementation in your branch would be amazing. If you have any plans to optimize the x86 engine or update the dependencies handling for the newer LIEF versions, that would be a game-changer for those of us working on older automotive or industrial software. Thanks again for the hard work and for keeping this project alive! @CodeExplorer Hi Codexplorer, First of all, I wanted to say a huge thank you for your work on the Unlicense project and for sharing your compiled version/updates. It’s an incredible resource for the community. I've been testing the tool on some specific WinLicense 3.x protected targets (specifically 32-bit/x86 binaries). While the tool works great on many samples, I encountered a few hurdles with recent Python/LIEF environments and x86 targets that might be worth looking into for a future improvement: LIEF Compatibility: Recent versions of LIEF (0.17+) seem to have changed some attributes (like MACHINE_TYPES moving to Header.MACHINE_TYPES) and now return section names as bytes instead of strings, causing TypeErrors in dump_utils.py. Frida RPC Stability on x86: I've noticed frequent TypeError: not a function errors during the setupOepTracing or enumerateModuleRanges calls when targeting x86 apps on Windows 10/11. This often leads to AccessViolation because the IAT resolution gets interrupted or fails to map correctly. Forced IAT/OEP: On some complex targets, adding a more robust "forced mode" for OEP and IAT (bypassing the Frida instrumentation if the user already knows the addresses) helped me get further, but a native implementation in your branch would be amazing. If you have any plans to optimize the x86 engine or update the dependencies handling for the newer LIEF versions, that would be a game-changer for those of us working on older automotive or industrial software. Thanks again for the hard work and for keeping this project alive! @CodeExplorer
  20. Rubik
    hello everyone! first post here :D im somewhat new to reverse engineering xiot firmware binaries, so please forgive my ignorance as i learn. ive been working on this one embedded linux binary, but ive been having trouble. using binwalk, it cant seem to fully decompile it, only return a .lzo file. based on entropy analysis of given lzo file, it appears encrypted with partial plaintext for bootloader (high entropy/low variance, please correct me if im wrong). im not sure how exactly to go about decryption or further analysis. i thought maybe xor encryption algorithm, so i tested the binary against all possible xor encryption keys, with no results. https://files.catbox.moe/cnre9d.bin if anyone has the time to help out, pls do so!! ive linked a copy of the binary, if you make progress, pls let me know what you did so i can learn from it too. thank you! ^^
  21. Hailuaviendong
  22. Prometheus
    Prometheus (12 Layers of Insanity) A recruitment challenge for those who see what others cannot. The binary guards an encrypted message. To reveal it, you must provide the correct 28-character key. There is no backdoor, no shortcut, no unintended solution—only the key. The verification process spans twelve interconnected layers. Each depends on others. Disrupting one cascades through all. The binary knows its own shape and will notice if you change it. Some defenses are apparent through static analysis. Others manifest only at runtime. A few exist in the liminal space between instruction and execution—observable only through their effects, never their implementation. Difficulty 6/6 ## Rules - Standard crackme rules apply - The solution is the 28-character key - Picture of the solved challenge to be posted only 48h after completion. - No external services or network required - Linux x86_64 The reward prize and job offer will terminate in 24 hours. File Information Submitter Prometheus Submitted 01/21/2026 Category CrackMe View File
  23. LCF-AT
    Hello @boot, bad news, your tool & driver can't kill the python process too like all those other tools. ☹️ Really sad. It can kill other running processes but not that specific one. I really would like to know why it is impossible to exit this process. Ever heard something about that a process really can't get terminated and the only way to get a rid of it is to reboot the system? Do you have another ideas? Remember, in this thread you could see my video I did post where it happens when using ComfyUI Portable (even outside of Sandbox) which used a embedded Python file which also makes that trouble I can't terminate at the end when this problem occurs by random etc. https://forum.tuts4you.com/topic/45702-how-to-terminate-a-process-which-is-denied-to-terminate/#findComment-226957 greetz
  24. Beyoglu
    Hello everyone I have been developing my own EXE protection and encryption system for a long time Taking inspiration from solutions like VMProtect and Themida I am trying to build a structure that includes various security layers such as packer encryption obfuscation anti dump and more To test this work and identify its shortcomings I prepared a small test EXE The application is a simple program that asks for a license key and your goal is to crack this application and gain access I encrypted and protected this test application using the protection system I developed Download link https://dosya.co/x5e4xyewg94d/CrackMe.exe.html VirusTotal analysis https://www.virustotal.com/gui/url-analysis/u-a65e75a253a80ae0a2ef0e23a218db163333faf2ce84401f76168cb764444c2a-a6822794 I kindly ask you to analyze it using reverse engineering techniques and try to break it and if possible share with me The parts you found difficult The weaknesses you found easy The strong and weak points of the protection My goal is purely to learn see my mistakes and make the system more robust For experienced experts it may be a simple application please excuse that in advance I hope it will be an educational exercise for beginners and intermediate level users Thank you in advance to everyone who participates Good luck to all
  25. Teddy Rogers
    Yes, please post crackme's in the correct area, read the description at the top of the category in the link below, thank you... https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/ Ted.
  26. Beyoglu
    It seems that although the executable looks protected, no real encryption or obfuscation has actually been applied. There is also a possibility that I accidentally tested the original executable file. I will review my program and fix any shortcomings in the protection pipeline. Thank you for your feedback. Would you like me to open a new thread after I make the corrections?
  27. Tundxator
    There is absolutely nothing encrypted, virtualized, or obfuscated in the exe. private void BtnCheck_Click([Nullable(2)] object sender, EventArgs e) { if (this.txtLicenseKey.Text.Trim() == "QUJU-329D-4936-GSBW-AVSK-U8") { base.Hide(); new SuccessForm().Show(); return; } MessageBox.Show("Invalid License Key!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); }
  28. Beyoglu
    I guess nobody wants to help
  29. vinod123
    @cTrI the site will not disappear, bcoz the webdav server configured connection to single only no parallel connections allowed, if u use multiple winscp clients from the same location(ip) then u may abuse...
  30. kiran
    i copied this the function name CalculateAuthorizationCode() from Eaton.SSE.Security.Authorize.dll and i addedd the prefence to some dll which functions are used inside this main function here is my function code string CalculateAuthorizationCode(string registrationCode, AccessLevel accessLevel, uint numberOfDays, IEnumerable<string> allowedEquipmentList) { if (string.IsNullOrEmpty(registrationCode)) { throw new EatonException("Bad Authorization Code Request (RegistrationCode is empty)."); } if (!AccessLevelHelper.IsValidUserAccessLevel(accessLevel, CommonUtils.ProductType, false)) { throw new EatonException("Bad Authorization Code Request (Access level invalid)."); } bool flag = numberOfDays < 1U || numberOfDays > 730U; if (flag) { throw new EatonException("Bad Authorization Code Request (Number of days value is out of range)."); } if (allowedEquipmentList == null || allowedEquipmentList.Count<string>() <= 0) { throw new EatonException("Bad Authorization Code Request (Allowed Equipment List is Empty)."); } try { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(registrationCode); stringBuilder.Append("!"); stringBuilder.Append(accessLevel.ToString()); stringBuilder.Append("!"); stringBuilder.Append(numberOfDays.ToString()); stringBuilder.Append("!"); foreach (string text in allowedEquipmentList) { stringBuilder.Append(text); stringBuilder.Append(","); } if (stringBuilder.Length > 1) { stringBuilder.Remove(stringBuilder.Length - 1, 1); } byte[] array = _encrypt.EncryptTextToBytes(stringBuilder.ToString(), CryptoKey.Registration); LoggerInterface.WriteLine(LogLevel.Information, string.Format("Authorize.CalculateAuthorizationCode (), Code is {0}.", stringBuilder), LogControl.Encrypt); return CommonParse.BytesToString(array, FormatType.Hexadecimal); } catch (Exception ex) { LoggerInterface.WriteLine(LogLevel.Exception, ex.ToString()); } return string.Empty; } } i have compile error at this line byte[] array = _encrypt.EncryptTextToBytes(stringBuilder.ToString(), CryptoKey.Registration); An object reference is required for the non-static field, method, or property 'Program._encrypt please can some one guide me here i uploaded my csharp project https://we.tl/t-kLfapytJBX
  31. HostageOfCode
    Unpacked CFF Explorer_protected_unp_cl.7z
  32. whoknows
    judging by the error u posted you have to instantiate the _encrypt variable... Somewhere in app writes for example : Tesdsfasdft _encrypt so to instantiate you write : _encrypt = new Tesdsfasdft then u call any method.. if you continue have any problem PM @CodeExplorer , dont bump the thread
  33. whoknows
    ArmDot .NET v2026.1 (Built-in License System) This one uses the built-in license system of the ArmDot .NET.. Provide a serial or an unpacked or a patched variant that accepts a serial. File Information Submitter whoknows Submitted 01/31/2026 Category KeygenMe View File
  34. RADIOX
    1 point
    No pressure; anyone can enjoy doing CTF challenges here. Old-day masters no longer exist
  35. whoknows
    ArmDot .NET v2026.1 File protected with Hide strings Obfuscate control flow Obfuscate names Obfuscate namespaces and some virtualization accepted solution - unpack OR tell what is doing. File Information Submitter whoknows Submitted 01/30/2026 Category UnPackMe (.NET) View File
  36. unpacker1
    1 point
    Sorry, I'm really short on time for tutorials. Besides it won't be much of use, as mostly custom tools are used. But I could try to answer some questions.
  37. unpacker1
    1 point
    Though this one is quite old, I didn't see it solved, so decided to unpack winenum version. It's relatively easy compared to other protectors: a couple of OEP bytes stolen, light import redirection and that's it. Unpacked attached, OEP restored, import rebuilt, sections cut. unpacked.exe
  38. pentium450
    Very exciting! Themida 3.x seems to be a difficult point. If we can't restore the virtualized code, unpacking will become meaningless. Virtualization may be a good protection method, but there is too little discussion on this aspect. Once again, kudos!
  39. Raprey777
  40. fReestYler
    DotFix NiceProtect x32 v7.1 A Delphi file is protected with an old version DotFix NiceProtect (7.1) Original Entry Point is encrypted Just find and restore OEP, recover the IAT and unpack it File Information Submitter fReestYler Submitted 10/06/2025 Category UnPackMe View File
  41. newbie_newbe
    <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">version.dpr</font></font>
  42. cTrI
    Should I download all the necessary courses now? They are truly amazing, but from what I know, WebDAV isn't very stable. I'm honestly worried that the site might disappear...but I'm worried that downloading (too much) might put too much strain on the server.
  43. 0xman
    1 point
    use Net gaured Cflow Cleaner This doesn’t fully clean the control flow but after using it you will need to use a SizeOf fixer. After that, you can use the constant decrypter by CuredSheep. SizeOf-Fixer-master.zipnetguard controlflow.rar
  44. HostageOfCode
    Here compiled unlicense with codeexplorer's fixes: unlicense compiled With pyton 3.09 and 3.11 versions.
  45. CodeExplorer
    I don't know how to create exe with PyInstaller. Also I didn't finished my updates yet.
  46. murooo
  47. mindre44
    Someone please share zero 2 automated reversing course. Thank you.
  48. hydradragonantivirus
    I added 64 bit support and generic extraction HydraDragonAntivirus/MegaDumper: Fixed 2025 version of Mega Dumper
  49. jackyjask
    some old tools to dump LTPs (199x, 200x) https://workupload.com/file/DarwJdWpGR8
  50. Gyrus
    Use version.ASM to load your dll. compile with fasm.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.