 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
TonyBalony1960 How do I cheat?
Reputation: 0
Joined: 04 Feb 2012 Posts: 4
|
Posted: Sat Feb 04, 2012 7:45 pm Post subject: Skyrim Console Pointer |
|
|
Hi. I am so lost. I have been trying to find Skyrim's console buffer pointer, (the place where it stores all text entered into the console and is shown), and have been beating my wittle head against a wall.
Now, I do understand that this buffer changes, but this one's starting address moves backwards. Let's say I typed the command "player.setav Health 1000" for example and found it at 12F33D34 initially. When I enter another command, the original command now moves to what may be at 12F33C56, a lower number then it started at. I tried looking for some lower address that pointed to this area, tried hex with a "value between", tried "Find what access/writes to this address"...I'm so lost.
Anyone have any idea how to handle such a thing, or even better yet, (I'd have wet dreams if this happened), know what address points to this mysterious buffer?
Any help you can give would be GREATLY appreciated. My weekend is dwindling and I can't seem to figure this out. Thanks.
BTW, in case it wasn't very clear, the buffer is ALWAYS in a different location, usually from 12000000 to 13FFFFFF.
|
|
| Back to top |
|
 |
ta_trainer Advanced Cheater
Reputation: 0
Joined: 24 Dec 2006 Posts: 76
|
Posted: Sun Feb 05, 2012 2:50 am Post subject: |
|
|
Hi, I do not have an answer to your question but I have used a seperate console programmed in C++ to render any text on the screen the same way ~console behaves in any game.
The work is not mine, it is a hack for copmany of heroes called "Dark Company" with source code
google: "Dark Company 0.01 (CoH multi hack)" if you are intrested
|
|
| Back to top |
|
 |
TonyBalony1960 How do I cheat?
Reputation: 0
Joined: 04 Feb 2012 Posts: 4
|
Posted: Sun Feb 05, 2012 5:06 am Post subject: |
|
|
Well, thanks. I'll check it out.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25833 Location: The netherlands
|
Posted: Sun Feb 05, 2012 7:04 am Post subject: |
|
|
thanks for the idea.
Since ce 6.2 already has a d3d hook and a message handler hook, I think it should be possible to add this to ce and let the console commands be lua commands.
No idea if it'll make it in 6.2 or if it gets postponed to 6.3
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
ta_trainer Advanced Cheater
Reputation: 0
Joined: 24 Dec 2006 Posts: 76
|
Posted: Mon Feb 06, 2012 3:44 am Post subject: |
|
|
| Dark Byte wrote: | thanks for the idea.
Since ce 6.2 already has a d3d hook and a message handler hook, I think it should be possible to add this to ce and let the console commands be lua commands.
No idea if it'll make it in 6.2 or if it gets postponed to 6.3 |
Dark Byte, it will be great if you implement this. have a look at the code, if you can not find it, I can send it to you.
The code is free open source under GNU licence. you can easly reuse it.
look for Console.cpp, Console.h and ArrayEx.h
all u need to do is feed it with is the D3D pDevice Pointer.
basically, u add a txt message similar to "printf". you render it by calling a funtion (RenderConsole), the message stays on the screen for 10 seconds then the console disapears.
a new message will push the previous one up
u can have up to 5 messages rolling
each message will have a timer before it to show the age of the message in seconds
I will take a screenshot and attach it here when I get back home.
Edit: this is Console.cpp:
BOOL ConsoleMessage(LPSTR szMsg,...)
{
CHAR *szString = new CHAR[0x400];
::memset(szString, 0, sizeof(CHAR) * 0x400);
va_list vaArgs;
va_start(vaArgs, szMsg);
vsprintf(szString,szMsg, vaArgs);
va_end(vaArgs);
pMessage *fp = new pMessage;
::memset(fp,0x00,sizeof(pMessage));
::strcpy(fp->szMsg,szString);
fp->nTick = GetTickCount();
aConsole.Add(fp);
::free(szString);
return true;
}
VOID RenderConsole()
{
if(!aConsole.GetSize())
return;
if(GetTickCount() - aConsole[aConsole.GetSize()-1]->nTick > 10000)
return;
DWORD From = 0;
if(aConsole.GetSize() > 6)
From = aConsole.GetSize()-6;
POINT lp;
GetScreenSize(&lp);
D3DDrawSprite(0,0,lp.x-2,(aConsole.GetSize()-From)*15,D3DCOLOR_ARGB(140,0xFF,0xFF,0xFF),GetTexture("back.jpg"));
D3DDrawRectangle(2,0,lp.x-2,(aConsole.GetSize()-From)*15,0xFFFF0000);
unsigned long dwCoun = NULL;
for(int x = From; x < aConsole.GetSize();dwCoun++, x++)
D3DDrawOut(6,(dwCoun*15),"[%.3d:%.2d] %s",(((GetTickCount() - aConsole[x]->nTick)/1000)/60),
((GetTickCount() - aConsole[x]->nTick)/1000)-((((GetTickCount() - aConsole[x]->nTick)/1000)/60)*60)
,aConsole[x]->szMsg);
}
|
|
| Back to top |
|
 |
TonyBalony1960 How do I cheat?
Reputation: 0
Joined: 04 Feb 2012 Posts: 4
|
Posted: Mon Feb 06, 2012 3:37 pm Post subject: |
|
|
OK, now I'm lost even worse. Are you guys talking about getting console text by hooking to the games DLL, or through DirectDraw? (Slow down a step or two for those of us who are sitting way in the back).
At this point, I have my program monitoring over 50 megs of memory for the console text, which you can imagine would slow things up a bit. I've tried passing varying HEX pointers to the console text I found with my program to CE with no luck. The range of where the console text can be forward or backward from the last position it was at. It has me baffled. One simple pointer, changing or otherwise, would really give this project a much needed boost.
Hooking to the games DLLs or whatever you guys are talking about, sounds like it might makes this lots easier.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25833 Location: The netherlands
|
Posted: Mon Feb 06, 2012 4:19 pm Post subject: |
|
|
you say you used "Find what access/writes to this address"
What did you do with that information?
I suggest using "Find out what addresses this code accesses" in memoryview and find a way to see when it's console access or 'something else' (if it's shared code)
Then hook it and store some addresses (like last log message) to a known address you can read out
ta_trainer: I havn't checked it yet, but from your description it looks like it's something that displays messages to the screen and then fades away. This can already be done with the 6.2 beta. (Create a image with the text, make it an overlay and set the position. Then slowly decrease the alphablend value till it's invisible)
What I was talking about was an actual console where you can type in commands like "God" or "Ammo" which will trigger the cheat table's Godmode and Inf ammo scripts
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
TonyBalony1960 How do I cheat?
Reputation: 0
Joined: 04 Feb 2012 Posts: 4
|
Posted: Mon Feb 06, 2012 5:08 pm Post subject: |
|
|
Thanks. I'll give that a try.
I've played with CE the whole weekend trying to figure this out, but the console buffer address changes every time and the things that seemed to point near the address, (never directly to it or within 100s of bytes of it), never panned out as actual pointers. I've always thought I was a smart guy, but I'm starting to think otherwise.
Thanks for your help.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25833 Location: The netherlands
|
Posted: Mon Feb 06, 2012 5:23 pm Post subject: |
|
|
Once you have the address of code that accesses at least one element of it (e.g when the lines are being moved up) you can use that as a starting point for the rest. The address of the code will be the same each time
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|