Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Skyrim Console Pointer

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
TonyBalony1960
How do I cheat?
Reputation: 0

Joined: 04 Feb 2012
Posts: 4

PostPosted: Sat Feb 04, 2012 7:45 pm    Post subject: Skyrim Console Pointer Reply with quote

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
View user's profile Send private message
ta_trainer
Advanced Cheater
Reputation: 0

Joined: 24 Dec 2006
Posts: 76

PostPosted: Sun Feb 05, 2012 2:50 am    Post subject: Reply with quote

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
View user's profile Send private message
TonyBalony1960
How do I cheat?
Reputation: 0

Joined: 04 Feb 2012
Posts: 4

PostPosted: Sun Feb 05, 2012 5:06 am    Post subject: Reply with quote

Well, thanks. I'll check it out. Cool
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25833
Location: The netherlands

PostPosted: Sun Feb 05, 2012 7:04 am    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
ta_trainer
Advanced Cheater
Reputation: 0

Joined: 24 Dec 2006
Posts: 76

PostPosted: Mon Feb 06, 2012 3:44 am    Post subject: Reply with quote

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
View user's profile Send private message
TonyBalony1960
How do I cheat?
Reputation: 0

Joined: 04 Feb 2012
Posts: 4

PostPosted: Mon Feb 06, 2012 3:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25833
Location: The netherlands

PostPosted: Mon Feb 06, 2012 4:19 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
TonyBalony1960
How do I cheat?
Reputation: 0

Joined: 04 Feb 2012
Posts: 4

PostPosted: Mon Feb 06, 2012 5:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 471

Joined: 09 May 2003
Posts: 25833
Location: The netherlands

PostPosted: Mon Feb 06, 2012 5:23 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites