Results 1 to 4 of 4
  1. #1
    c0deine's Avatar
    Join Date
    Feb 2015
    Gender
    male
    Posts
    190
    Reputation
    10
    Thanks
    167
    My Mood
    Aggressive

    Developers guide to Merccy's PolyLoader

    This is for DEVELOPERS only!

    Merccy's PolyLoader can be found here: https://www.mpgh.net/forum/showthread.php?t=916581
    On his thread, his guide for developers is a little lacking in explanation of what certain aspects of it do. So I decided to write a quick thread for developers on how to use polyloader to your advantage, for personal use and public releases. If you aren't familiar with what polyloader is, the link to his thread is above.

    To start off using polyloader to develop, you should create a folder somewhere that is easily accessible for you (e.g. your desktop).
     

    command.txt
    inout.txt
    msg.txt
    and a source directory.

    Thats all that is required to set it up, now you just need to configure these files.
     

    In here you just paste your compiler settings, this one is provided by Merccy and according to him should work for most hacks.
    Code:
    /EHsc /Od /MT *.cpp kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /link /FORCE:MULTIPLE /OUT:hack.exe

     

    In the command.txt you had to input your parameters for the compilation of your source, there is a param. named /OUT.
    The argument in /OUT should be the first line in this file, and the second should be what you want it to be compiled as.
    Code:
    hack.exe
    RandomHackName.exe
    Merccy if you are reading this, I would suggest removing this and just randomizing the file name and process name.

     

    In here you just put a message that you want to be displayed to the user when loading.
    Code:
    Hi


    Now that you have setup your directory, you just need to modify your source code.
     

    PolyLoader uses tags that you put in your code to analyze your file for what it should randomly change.
    Here is a list of tags
    Code:
    [swaplines][/swaplines] See below (Block Section)
    [swap_blocks][/swap_blocks] See below (Block Section)
    [block][/block] See below (Block Section)
    [add_junk /] See below (Junk Section)
    [junk_enable x y] See below (Junk Section)
    [junk_disable /] See below (Junk Section)
    [junk_enable_declares /] See below (Junk Section)
    [enc_string_enable /] Enables string randomization
    [enc_string_disable /] Disables string randomization
     

    swaplines:
    Swap lines just changes the order of lines.
    It's paragraph taking like putting in a the and words random locations.
    Before (pre-compilation)
    Code:
    [swaplines]
    ClientFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("client.dll"), "CreateInterface");
    EngineFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("engine.dll"), "CreateInterface");
    VGUIFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vgui2.dll"), "CreateInterface");
    VGUIMatFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vguimatsurface.dll"), "CreateInterface");
    CvarFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vstdlib.dll"), "CreateInterface");
    [/swaplines]
    After (post-compilation)
    Code:
    VGUIMatFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vguimatsurface.dll"), "CreateInterface");
    EngineFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("engine.dll"), "CreateInterface");
    ClientFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("client.dll"), "CreateInterface");
    CvarFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vstdlib.dll"), "CreateInterface");
    VGUIFactory		= (CreateInterfaceFn)GetProcAddress(GetModuleHandle("vgui2.dll"), "CreateInterface");
    swap_blocks/block:
    Swap blocks does the same thing as swap lines, just with large amounts of code.
    You can even combine the two for swapception.
    Inside your swap blocks tags, you have to define the regions of code that are blocks:
    Code:
    [swap_blocks]
    [block]
    int cool = 1;
    int stuff = 2;
    [/block]
    [block]
    int thanks = 3;
    int merccy = 4;
    [/block]
    [block]
    int for = 5;
    int making = 6;
    [/block]
    [block]
    int poly = 7;
    int loader = 8;
    [/block]
    [/swap_blocks]
    When compiled, PolyLoader would change the positions of these so they weren't in order like I had them.
    It's book taking like putting in a the and paragraphs random locations.

     

    Junk pretty much does makes what it's named after, junk.
    [junk_enable x y] Enables junk generation and takes two parameters (0, 1, or 2) that aren't required.
    0 Parameters specifies to put junk code after every ;
    1 Parameter specifies to put x lines of junk code after every ;
    2 Parameters specifies to put a random amount from x to y lines of junk code after every ;
    A smart idea is to use [junk_enable 1 15] for the amount of junk, this makes the file size vary a lot between compiles, throwing off anti cheats by creating a different and unique signature every time.
    [junk_disable /] Turns off junk generation.
    [junk_enable_declares /] Should be used in header files because it only makes declares.
    [add_junk /] Creates a block of junk code at the position.


    Once you do this, turn the folder into a zip file and test it by running PolyLoader and compiling it.

    PolyLoader helps bring open-source development to the cheating scene, something rarely done. By empowering developers with this tool, we can help decrease detection rates and increase the amount of contributors.
    I hope this helps developers and encourages more to use this tool and distribute their cheats in a way that the community can modify to their own personal liking.

  2. #2
    jkfauvel's Avatar
    Join Date
    May 2014
    Gender
    male
    Location
    São Paulo
    Posts
    267
    Reputation
    10
    Thanks
    1,234
    My Mood
    Cool
    I think it's already explained pretty well by merccy himself. If you have basic knowledge you will be able to do it. Don't see the point of this thread, however, it's only my opinion.
    In the midst of chaos, there is also opportunity.

  3. #3
    c0deine's Avatar
    Join Date
    Feb 2015
    Gender
    male
    Posts
    190
    Reputation
    10
    Thanks
    167
    My Mood
    Aggressive
    Quote Originally Posted by jkfauvel View Post
    I think it's already explained pretty well by merccy himself. If you have basic knowledge you will be able to do it. Don't see the point of this thread, however, it's only my opinion.
    When I originally read it, it wasn't very helpful. I believe this thread goes much more in depth on how to use the features and what they do.

  4. #4
    jkfauvel's Avatar
    Join Date
    May 2014
    Gender
    male
    Location
    São Paulo
    Posts
    267
    Reputation
    10
    Thanks
    1,234
    My Mood
    Cool
    Quote Originally Posted by c0deine View Post
    When I originally read it, it wasn't very helpful. I believe this thread goes much more in depth on how to use the features and what they do.
    Maybe it will be useful for some people then...
    In the midst of chaos, there is also opportunity.

Similar Threads

  1. [Outdated] Merccy's PolyLoader 2.0
    By Merccy2 in forum Counter-Strike 2 Hacks
    Replies: 1316
    Last Post: 06-29-2015, 02:40 PM
  2. Replies: 8
    Last Post: 03-19-2015, 09:18 AM
  3. [Info] BEGINNERS GUIDE TO XBOX 360 DEVELOPMENT KITS 01/08/2012
    By AIMatHEAD in forum XBOX Customizing & Modding
    Replies: 7
    Last Post: 08-09-2013, 09:31 AM