The question topic is something only a person who knows in-depth programming would know. Like Kornman.
Codecaving is taking an address of a program (5 bytes or more) that tells the computer to reference something like a .dll At that point you can get data/values (from Assembly code) and then change the data. E.G. Get the text a person typed and change it to something else.
Last edited by Dwood; August 8th, 2009 at 08:22 PM.
Skyline seems like a good programmer, don't insult him.
How else would you execute the code in an OS dll?
You didn't even give Korn a full day to answer your question. He doesn't have to answer your question, nor does he have to do it in a set amount of time.
The question you asked made no sense, what other method would be used other then using a codecave? Creating a codecave has never been simplier then using a function created by kornman:
Figuring out where to put your codecave is part of your job. Kornman isn't going to map out halo in its' entirety for you. Find out what calls the function that retrieves the text and add your codecave to overwrite the text with your own code, assuming this would have to be server-sided and all clients would need OS.Code:#include "Memory/MemoryInterface.hpp" Yelo::Memory::CreateHook(void* function, void* hook_address, byte end);
I know what a codecave is, it would have been pretty hard to make a fov and 3p app without knowing what it is.
Sorry about this whole thing. We should start over. You see, your response didn't sound like you were talking about codecaving at all.
If you wish to understand my question completely, see my other thread. I already have the address space in Halo etc figured out for what I want to do. I was just wondering if Kornman brought more to the table (which it obviously does) such that we could intercept text with Open Sauce.
I think i overestimated this, however. :/
I think you need to learn how C++ works first. I also recommend learning ASM as that helps out so much. Codecaves are simple, coding them is a bit trickier, however kornman has made it so simple to implement, its fantastic.
You need to create a hook, and then assign it a method. The method will run when the initial hook code runs. You might need to replace the ASM code in your method but thats easy. Then you add in your hokey pokey code that does what you want it do, and bingo.
I've simplified it a bit but thats pretty much it. I understand your new to C++, and I admire you for trying to use OS, more people should be using it, but please dont insult experienced members knowledge
People not knowing how to inject their own code was one of the reasons for so many "unused" Update functions (ie in the Effects or AI components). At least then they can keep their code organized in the respected systems and also not have to worry too much about figuring out where to inject their code.
I also cleaned up the MemoryInterface functions so there are only 3 functions now: CreateHookRelativeCall (requires 6 bytes at the destination address) and WriteRelativeJmp\Call (which require 5 bytes).
It was something I wanted to do in the initial release but instead just kept the cut&paste from the original Yelo code base which was just a hack-in-progress-job and thus didn't get cleaned up and broken down very much. That being said, one of the goals of Update 2 is to remove the code-hacks and code duplication that leaked from the old Yelo codebase and I think developers will appreciate the final product.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks