[source][C++]Blackbone - windows memory hacking library menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [source][C++]Blackbone - windows memory hacking library

    I've decided to gather all my stuff into one single library and came up with this eventually.

    Major features:
    - x86 and x64 support

    Process interaction
    - Manage PEB32/PEB64
    - Manage process through WOW64 barrier

    Process Memory
    - Allocate and free virtual memory
    - Change memory protection
    - Read/Write virtual memory

    - Process modules
    - Enumerate all (32/64 bit) modules loaded. Enumerate modules using Loader list/Section objects/PE headers methods.
    - Get exported function address
    - Get the main module
    - Unlink module from loader lists
    - Inject and eject modules (including pure IL images)
    - Inject 64bit modules into WOW64 processes
    - Manually map native PE images

    Threads
    - Enumerate threads
    - Create and terminate threads. Support for cross-session thread creation.
    - Get thread exit code
    - Get main thread
    - Manage TEB32/TEB64
    - Join threads
    - Suspend and resume threads
    - Set/Remove hardware breakpoints

    Pattern search
    - Search for arbitrary pattern in local or remote process

    Remote code execution
    - Execute functions in remote process
    - Assemble own code and execute it remotely
    - Support for cdecl/stdcall/thiscall/fastcall conventions
    - Support for arguments passed by value, pointer or reference, including structures
    - FPU types are supported
    - Execute code in new thread or any existing one

    Remote hooking
    - Hook functions in remote process using int3 or hardware breakpoints
    - Hook functions upon return

    Manual map features. This is slightly updated and improved version of my DarkMMap project
    - x86 and x64 image support
    - Mapping into any arbitrary unprotected process
    - Section mapping with proper memory protection flags
    - Image relocations (only 2 types supported. I haven't seen a single PE image with some other relocation types)
    - Imports and Delayed imports are resolved
    - Bound import is resolved as a side effect, I think
    - Module exports
    - Loading of forwarded export images
    - Api schema name redirection
    - SxS redirection and isolation
    - Activation context support
    - Dll path resolving similar to native load order
    - TLS callbacks. Only for one thread and only with PROCESS_ATTACH/PROCESS_DETACH reasons.
    - Static TLS
    - Exception handling support (SEH and C++)
    - Adding module to some native loader structures(for basic module api support: GetModuleHandle, GetProcAdress, etc.)
    - Security cookie initialization
    - C++/CLI images are supported
    - Image unloading
    - Increase reference counter for import libraries in case of manual import mapping
    - Cyclic dependencies are handled properly
    Repository contains test application to demonstrate basic usage.

    Library is licensed under the MIT License. Dependencies are under their respective licenses.

    Source - Blackbone - GitHub

    Because of c++11 usage, VS2013 or higher is required to compile it. GCC, Clang and ICC aren't officially supported yet, I'm planning to add compiler support a bit later.

    Enjoy.
    Last edited by DarthTon; 12-26-2013 at 08:56 AM.

    [source][C++]Blackbone - windows memory hacking library
  2. #2
    d3rrial's Avatar Contributor Authenticator enabled
    Reputation
    127
    Join Date
    Apr 2010
    Posts
    527
    Thanks G/R
    0/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice, very interesting. Looks pretty good at a first glance.

    Looks like C++11? Maybe worth mentioning
    Last edited by d3rrial; 12-25-2013 at 02:37 PM.

  3. #3
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes, I used some of c++11 features. But for me it's already like c++03, nothing extraordinary and unusual that is worth mentioning.

  4. #4
    d3rrial's Avatar Contributor Authenticator enabled
    Reputation
    127
    Join Date
    Apr 2010
    Posts
    527
    Thanks G/R
    0/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    For you not, of course, the boost libs are also almost second nature to me now, but people aren't born with all knowledge

    Point is: Some compilers need extra flags to compile c++11 compliant, so I think its worth a tiny note

  5. Thanks forDoForum (1 members gave Thanks to d3rrial for this useful post)
  6. #5
    DrD's Avatar Member Authenticator enabled
    Reputation
    8
    Join Date
    Mar 2008
    Posts
    84
    Thanks G/R
    1/1
    Trade Feedback
    6 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    To anyone who has trouble with this library, you can get VADPurgeDef.h from his DarkMM svn. Also your compiler needs to fully support C++11, the November CTM didn't work for me with VS 2012. So I loaded it up in VS 2013 and it compiles and works fine. It's a nice clean library, thanks for sharing it.

  7. #6
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    To anyone who has trouble with this library, you can get VADPurgeDef.h from his DarkMM svn. Also your compiler needs to fully support C++11, the November CTM didn't work for me with VS 2012. So I loaded it up in VS 2013 and it compiles and works fine. It's a nice clean library, thanks for sharing it.
    Thanks for note. I've added missing VADPurgeDef.h into project and added notes about compiler support.

  8. #7
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice! Thanks for sharing.

  9. #8
    _Mike's Avatar Contributor
    Reputation
    310
    Join Date
    Apr 2008
    Posts
    531
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Looks good. Thanks for sharing. +Rep
    Just one question (maybe I'm misunderstanding the description)
    - Adding module to some native loader structures(for basic module api support: GetModuleHandle, GetProcAdress, etc.)
    If you're going to make the module visible to win32, why not LoadLibrary() it?

  10. #9
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you're going to make the module visible to win32, why not LoadLibrary() it?
    Module isn't entirely visible, it still has no section object and isn't present in any list used in module enumeration functions. Also it's a completely optional feature implemented via flag.

  11. #10
    wtblife's Avatar Member
    Reputation
    2
    Join Date
    May 2013
    Posts
    11
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The TestApp seems to always stop at "Trying to map C:\windows\system32\calc.exe into current process" for me. Does anyone else have this issue?

  12. #11
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Both x86 and x64 work* for me as long as I run it normally. Tested on Windows 8.1 x64.

    Both crash if you enable Application Verifier. It seems there are two issues. The first isn't a big deal (just passing a null handle to an API), but the second actually causes a crash under both architectures.**

    I'm opening bugs on github now.

    * Remote function call test doesn't crash, but it also doesn't work, because CSRSS is a protected process in Windows 8.1.

    ** May not actually be the fault of the library, it depends on what's crashing and why.
    Last edited by Cypher; 03-02-2014 at 07:37 PM.

  13. #12
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for reports. I'm investigating this right now. Verifier crash most likely has something to do with APC mechanism. Will do more research myself.

    The TestApp seems to always stop at "Trying to map C:\windows\system32\calc.exe into current process" for me. Does anyone else have this issue?
    What is your OS version?

  14. #13
    wtblife's Avatar Member
    Reputation
    2
    Join Date
    May 2013
    Posts
    11
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DarthTon View Post

    What is your OS version?
    Windows 7 v6.1 x64

    Just to be clear, the program runs and doesn't crash or anything, it just seems to get stuck at that point.

  15. #14
    DarthTon's Avatar Contributor
    Reputation
    171
    Join Date
    Apr 2010
    Posts
    108
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just to be clear, the program runs and doesn't crash or anything, it just seems to get stuck at that point.
    It's OK. Main thread awaits completion of loaded image entry routine. Because calc is an .exe and not a .dll, TestApp will wait until calc main thread is terminated.

  16. #15
    NiKitos_'s Avatar Member
    Reputation
    1
    Join Date
    Feb 2015
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    How do you compile BlackBoneDrv? I compile in VS 2013 (Professional), and WDK 8.1 SDK install . Writes a lot of mistakes on the type mismatch, etc, although nothing stresses. Please tell me, what else should I do? Thank


    http://savepic.su/5115369.png
    Attached Thumbnails Attached Thumbnails [source][C++]Blackbone - windows memory hacking library-jpg  
    Last edited by NiKitos_; 02-21-2015 at 04:23 AM.

Page 1 of 2 12 LastLast

Similar Threads

  1. Memory Hacking Library List
    By Cypher in forum WoW Memory Editing
    Replies: 27
    Last Post: 08-30-2021, 07:07 PM
  2. Replies: 26
    Last Post: 02-02-2020, 11:43 PM
  3. [C#] NWOHack - An open-source in-process memory hack for NeverWinter
    By Jadd in forum Neverwinter Bots and Programs
    Replies: 23
    Last Post: 06-28-2013, 10:01 AM
  4. HadesMem - A Windows Memory Hacking Library for C++
    By Cypher in forum WoW Memory Editing
    Replies: 81
    Last Post: 02-10-2013, 03:24 PM
  5. Windows Games Hacks
    By Shattered in forum Gaming Chat
    Replies: 5
    Last Post: 05-18-2007, 09:22 AM
All times are GMT -5. The time now is 09:22 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