diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a98769 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +To use the generated files: + - Open Visual Studio + - File -> new project -> Visual C++ -> Windows Desktop -> Dynamic Link Library (DLL) + - Configure the name, location etc in the bottom section + - Change top section to target architecture (x86/x64) first + - Go to Solution Explorer, remove all source files and header files, move the generated files into the folder, then right click Source Files folder -> Add -> Add Existing Item... and add all of them + - Right click the DLL project (first one under solution), click properties + - Go to C/C++ -> Precompiled Headers -> change Use(/Yu) to Not Using Precompiled Headers + - Go to Linker -> Input -> set Module Definition File to the .def file + (If you are doing 32-bit files, skip to last step) + - Project -> Build Customizations -> check masm option + - Right click the .asm file in solution explorer, Properties -> Item type -> Microsoft Macro Assembler + + - Build -> Build Solution, then check the directory for the generated folder containing the binary +Changing the proxied functions to include custom codes might be a little tricky, but its generally easier to replace functions with known signatures directly instead of relying on asm jmps (they also work if you know what you are doing though). +Of course, if all you need is to trigger the codes and whatever happens next ain't of concern, just write whatever inside the functions directly ;) + + +Note: function that acts as variables like `__p__fmode` in msvcr might not work, since programs might directly access it by dereferencing. +There might be more caveats to be ironed out, but thats the only limit I can find currently, aside from the previously unsupported function mangling. \ No newline at end of file