CShell addres ???

Posts 1–7 of 7 · Page 1 of 1
CShell addres ???
Hi,
All of us who make memory editing hacks know that we put
Code:
DWORD cshell = (DWORD)LoadLibraryA("CShell.dll");
and
Code:
DWORD pWeaponMgr = *(DWORD*)(cshell + weaponMgr);
so this mean that cshell is number from type unsigned long long too
what is that number

if i include iostram and add using namespace std and try to take out the number in the console no console shows any idea how to find that ?
way are you soo interessed to get it, but i think i might know how wait i m going to make a little test

---------- Post added at 07:16 PM ---------- Previous post was at 07:14 PM ----------

@kmanev073 .
Quote Originally Posted by kmanev073 View Post
Hi,
All of us who make memory editing hacks know that we put
Code:
DWORD cshell = (DWORD)LoadLibraryA("CShell.dll");
and
Code:
DWORD pWeaponMgr = *(DWORD*)(cshell + weaponMgr);
so this mean that cshell is number from type unsigned long long too
what is that number

if i include iostram and add using namespace std and try to take out the number in the console no console shows any idea how to find that ?
It returns the address of the entry point of the selected module. The number itself isn't really significant, and you can't just use iostream and expect a console to show up in a dll. To make a console you need to call AllocConsole(); then you need to write to the console using WriteConsole(); . But this is detected by cf unless you have a bypass, which you don't, so you will have better using the fstream header file and just write the number to a text file. or you can just use sprintf to put the number in a buffer then use MessageBoxA(); to put the number into the messagebox.
Quote Originally Posted by 258456 View Post
It returns the address of the entry point of the selected module. The number itself isn't really significant, and you can't just use iostream and expect a console to show up in a dll. To make a console you need to call AllocConsole(); then you need to write to the console using WriteConsole(); . But this is detected by cf unless you have a bypass, which you don't, so you will have better using the fstream header file and just write the number to a text file. or you can just use sprintf to put the number in a buffer then use MessageBoxA(); to put the number into the messagebox.
no! it returns the base address, not the entry point, you can get the entrypoint by using ZwQueryProcessInformation...

@kmanev073
to be more obvious, when you load CShell in ollydbg, you will see 10A69120 as a pointer and the base address is 10000000
(Press the E button in ollydbg)

but crossfire.exe loads it at different base address (lets imagine it is 20000000) so
the pointer becomes 20A69120

so we do the following:
1-convert the pointer to offset by subtracting 10000000 (it becomes A69120)

2-in the hack we use GetModuleHandleA to get the new base (will return 20000000 in this case)
and add the result to A69120

i hope you understand!
Here an example of fstream:

Code:
#include <fstream>

using namespace std;

int main() {
    ofstream file("Filename.txt");
    file << "Test\n":
    file.close();
}
You can read/write with fstream:

ifstream = input
ofstream = output
fstream = input and/or output

For the rest, look @258456 and @giniyat101, they explained your question.
Quote Originally Posted by Brimir View Post
Here an example of fstream:

Code:
#include <fstream>

using namespace std;

int main() {
    ofstream file("Filename.txt");
    file << "Test\n":
    file.close();
}
You can read/write with fstream:

ifstream = input
ofstream = output
fstream = input and/or output

For the rest, look @258456 and @giniyat101, they explained your question.
Good Job Brimir
good idea i will use msg box
Posts 1–7 of 7 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us