CRC bypass question menu

User Tag List

Results 1 to 3 of 3
  1. #1
    scizzydo's Avatar Contributor
    Reputation
    134
    Join Date
    Oct 2019
    Posts
    96
    Thanks G/R
    5/54
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    CRC bypass question

    Hello everyone. I've been trying to get my CRC bypass working fine however I seem to always crash after the .text detour is applied. I've taken the old D2ROffline (from Ferib) and D2RModding (from Shalzuth) and updated it to the correct offsets for the shellcode to get .text start and .text size and only changed the part where I don't start the process suspended but grab the running D2R instance. Using these I still face the same crash. Those were just ran as examples to see if it was my code that was wrong, however same results from them.

    My program is just a basic C++ one where I pass the PID in command line to conduct the bypass. I'm doing everything the same as those articles (except re applying the section with SEC_NO_ACCESS after). If I don't apply any patches, I can keep the client running (so it looks like it's the shellcode being put in as the problem). I'm using Capstone & Keystone for generating my shellcode from assembly. Here's an example of the output from a run (without modifying the application):
    Code:
    Attempting to bypass 11608
    base       00007FF798B40000...00007FF79A7FFFFF (30146560 bytes)
    .text      00007FF798B41000...00007FF79A4F1C00 (26938368 bytes)
    Wrote the copy region to 0000019080000000
    Found CRC check at 00007FF798CC6BD0
    Detour at 00007FF798CC6BD0:
            push rbx
            movabs rbx, 0000020BA39B0000
            call rbx
            pop rbx
    
    CRC bypass at 0000020BA39B0000:
            push rcx
            movabs rcx, 00007FF798B41000
            cmp rdx, rcx
            jl cleanup
            movabs rcx, 00007FF79A4F1C00
            cmp rdx, rcx
            jg cleanup
    swap_crc:
            movabs rcx, 00007FF798B40000
            sub rdx, rcx
            movabs rcx, 0000019080000000
            add rdx, rcx
    cleanup:
            pop rcx
    normal_crc:
            crc32 rdi, qword ptr [rdx + rax*8]
            inc rax
            cmp rax, rcx
            jb normal_crc
            ret
    Expanding detour 1 byte with a NOP
    With the above, I see what I'd expect to be injected, and the process keeps running (.text not modified) however the remap has been done, and that seems to not trigger anything along with the Suspend & Resume process.

    When I allow it to write, and I keep the process suspended I have checked the code injected and it does exactly what is expected. The scan is finding 5 areas in the game .text to patch. I've reviewed the crash dump files and see the minidump containing the error: The thread tried to read from or write to a virtual address for which it does not have the appropriate access.

    Also, I noticed that the last call is the RtlCaptureContext in the associated crash.txt file, however I'm unsure how to do anything about that. If there's any tips, it would be greatly appreciated. I can show the code that I'm doing in a gist if you would like.

    CRC bypass question
  2. #2
    scizzydo's Avatar Contributor
    Reputation
    134
    Join Date
    Oct 2019
    Posts
    96
    Thanks G/R
    5/54
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Here's the gist of my latest attempts: crc bypass used in d2r (testing) . GitHub

    Again, if I don't do the CRC writes I'm good which makes me think it's the detour & cave code that has an issue, however it appears to be exactly as others say it should be... so I'm at a loss.

  3. #3
    ejt's Avatar Contributor
    Reputation
    209
    Join Date
    Mar 2008
    Posts
    166
    Thanks G/R
    3/111
    Trade Feedback
    0 (0%)
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Without disclosing to much I'll just say that first of all you're over complicating things by doing it like previous projects, you don't need code caves or anything like that, just jump over it.

    In release they also added more integrity checks, one of them tests against a memory region that is a clean D2R.exe image (just look for a region that has same size as base). There is more but not going to disclose that here, just letting you know things are a little more complicated now.

Similar Threads

  1. [Selling] MapleStory 2 NGS + CRC Bypass Possibly The First Ever, Bypasses Cheat Engine FULLY!!!
    By revitalizedHackster in forum MapleStory 2 Buy Sell Trade
    Replies: 1
    Last Post: 11-07-2018, 07:39 AM
  2. [Question] does anyone know how to bypass graphic checks?
    By -Ryuk- in forum Diablo 3 General
    Replies: 5
    Last Post: 05-15-2012, 07:37 PM
  3. Question about bypassing the daily account point limit for pserver voting.
    By Aradroth in forum WoW EMU Questions & Requests
    Replies: 5
    Last Post: 09-14-2010, 11:52 PM
  4. [Question] Any way to bypass the RAF country restriction?
    By Poopzoor in forum World of Warcraft General
    Replies: 7
    Last Post: 05-22-2010, 07:41 AM
  5. Lock Bypass Glitch - I have a question before I release
    By Powerfox in forum WoW EMU Questions & Requests
    Replies: 2
    Last Post: 12-21-2009, 03:32 PM
All times are GMT -5. The time now is 08:25 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search