Simple D3D9 Aimbot

Posts 31–45 of 51 · Page 3 of 4
Quote Originally Posted by ves23 View Post
Using viewprojection & localtoworld, no boxes are being drawn, heres the full shader log pastebin.com/1m39x6a5
Log says 230, I assume it's correct. It is usually 230-233 in ue3 engine games.

Code:
struct ModelInfo_t
{
	float vOutX, vOutY;
};
std::vector<ModelInfo_t>ModelInfo;

float aimheight = 70.0f;
void AddModel(LPDIRECT3DDEVICE9 pDevice)
{
	D3DVIEWPORT9 Viewport;
	pDevice->GetViewport(&Viewport);
	D3DXMATRIX ProjMatrix, ViewMatrix, WorldMatrix;
	D3DXVECTOR3 vOut(0, 0, 0), vIn(0, 0, aimheight);

	pDevice->GetVertexShaderConstantF(0, ProjMatrix, 4);
	pDevice->GetVertexShaderConstantF(230, ViewMatrix, 4);

	D3DXMatrixIdentity(&WorldMatrix);
	D3DXVec3Project(&vOut, &vIn, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);

	if (vOut.z < 1.0f)
	{
		ModelInfo_t pModelInfo = { static_cast<float>(vOut.x), static_cast<float>(vOut.y) };

		ModelInfo.push_back(pModelInfo);
	}
}
Code:
if (ModelInfo.size() != NULL)
{
	for (int i = 0; i < ModelInfo.size(); i += 1)
	{
		if (ModelInfo[i].vOutX > 1)
		{
			DrawCornerBox(Device, (int)ModelInfo[i].vOutX, (int)ModelInfo[i].vOutY+20, 20, 30, 2, D3DCOLOR_ARGB(255, 255, 255, 0));
		}
	}
}
ModelInfo.clear();
Quote Originally Posted by lvous View Post
Log says 230, I assume it's correct. It is usually 230-233 in ue3 engine games.

Code:
struct ModelInfo_t
{
	float vOutX, vOutY;
};
std::vector<ModelInfo_t>ModelInfo;

float aimheight = 70.0f;
void AddModel(LPDIRECT3DDEVICE9 pDevice)
{
	D3DVIEWPORT9 Viewport;
	pDevice->GetViewport(&Viewport);
	D3DXMATRIX ProjMatrix, ViewMatrix, WorldMatrix;
	D3DXVECTOR3 vOut(0, 0, 0), vIn(0, 0, aimheight);

	pDevice->GetVertexShaderConstantF(0, ProjMatrix, 4);
	pDevice->GetVertexShaderConstantF(230, ViewMatrix, 4);

	D3DXMatrixIdentity(&WorldMatrix);
	D3DXVec3Project(&vOut, &vIn, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);

	if (vOut.z < 1.0f)
	{
		ModelInfo_t pModelInfo = { static_cast<float>(vOut.x), static_cast<float>(vOut.y) };

		ModelInfo.push_back(pModelInfo);
	}
}
Code:
if (ModelInfo.size() != NULL)
{
	for (int i = 0; i < ModelInfo.size(); i += 1)
	{
		if (ModelInfo[i].vOutX > 1)
		{
			DrawCornerBox(Device, (int)ModelInfo[i].vOutX, (int)ModelInfo[i].vOutY+20, 20, 30, 2, D3DCOLOR_ARGB(255, 255, 255, 0));
		}
	}
}
ModelInfo.clear();
Made a video with
Code:
Device->GetVertexShaderConstantF(0, ProjMatrix, 4); 
Device->GetVertexShaderConstantF(4, ViewMatrix, 4);
Just to show that it partially works. Also used 70 aimheight in this, then going down slowly.
http://www.youtube.com/watch?v=aq6ct...ature=youtu.beⓘ




Then here's what 230 gives me:


I even scrolled through all the possible combinations of ViewMatrix and ProjMatrix, starting to think, the problem is not in that.

Would it be possible, if you could help me on skype ? Or some other IM?
Quote Originally Posted by lvous View Post
which game pointblank? if you have the classes and the right offset then yes
Yes, and I don't quite Understand this.
(float)aimheight
Quote Originally Posted by ves23 View Post
I even scrolled through all the possible combinations of ViewMatrix and ProjMatrix, starting to think, the problem is not in that.
..
I think the problem was DrawPoint. D3DCLEAR_ZBUFFER made the boxes disappear. Worldtoscreen works, here is the working version:

pastebin.com/Ykk8q4yL



The boxes are still buggy, I think you need to filter out heads or bodies somehow which can be difficult.

- - - Updated - - -

Quote Originally Posted by Jhem View Post
Yes, and I don't quite Understand this.
(float)aimheight
That's where you simply adjust the height of the esp box, usually it draws the box at the lowest point (feet) and you want to draw or aim heigher.
Quote Originally Posted by lvous View Post
I think the problem was DrawPoint. D3DCLEAR_ZBUFFER made the boxes disappear. Worldtoscreen works, here is the working version:

pastebin.com/Ykk8q4yL



The boxes are still buggy, I think you need to filter out heads or bodies somehow which can be difficult.

- - - Updated - - -


That's where you simply adjust the height of the esp box, usually it draws the box at the lowest point (feet) and you want to draw or aim heigher.
You play Tera, too? Cool ! I just used your w2s, and it worked ! I don't think it has anything to do with the buffer, maybe I'm wrong, but I haven't tested further, and can't tell where the problem was. Thanks a lot, though

Here's a video of it:

Quote Originally Posted by ves23 View Post
You play Tera, too? Cool ! I just used your w2s, and it worked ! I don't think it has anything to do with the buffer, maybe I'm wrong, but I haven't tested further, and can't tell where the problem was. Thanks a lot, though

Here's a video of it:

Looks good. I don't play tera, just wanted to test something and see if I can make it work :> Noticed that nicknames are also a shader with a different localtoworld
Quote Originally Posted by lvous View Post
Looks good. I don't play tera, just wanted to test something and see if I can make it work :> Noticed that nicknames are also a shader with a different localtoworld
You can make an epic bot with the info on the crosshair. Its very easy to read that distance address, and you can cast skills based on the distance between you and the target. I've done it before and I believe, there was also an address that would show if you're aiming a friendly, and it can be used for the aimbot, to not aim friendly targets.
Quote Originally Posted by ves23 View Post
You can make an epic bot with the info on the crosshair. Its very easy to read that distance address, and you can cast skills based on the distance between you and the target. I've done it before and I believe, there was also an address that would show if you're aiming a friendly, and it can be used for the aimbot, to not aim friendly targets.
Do you have the address for enemies in crosshair? Try my autoshoot, I also added distance esp. pastebin.com/PJhNQfG3
Quote Originally Posted by lvous View Post
Do you have the address for enemies in crosshair? Try my autoshoot, I also added distance esp. pastebin.com/PJhNQfG3
How can be done the w2s?
Code:
bool WorldToScreen(D3DXVECTOR3 inpos, D3DXVECTOR3 &outpos, LPDIRECT3DDEVICE9 pDevice)
{
	DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x0000;
	CRenderData* RenderData = (CRenderData*)(dwRenderData);

	D3DXVECTOR3 vScreen;
	D3DVIEWPORT9 g_ViewPort;

	pDevice->GetViewport(&g_ViewPort);
	g_ViewPort.X = g_ViewPort.Y = 0;
	g_ViewPort.MinZ = 0;
	g_ViewPort.MaxZ = 1;
	D3DXVec3Project(&vScreen, &inpos, &g_ViewPort,
		&RenderData->RenderData->ProjectMatrix,
		&RenderData->RenderData->ViewMatrix,
		&RenderData->RenderData->WorldMatrix);

	if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < g_ViewPort.Width && vScreen.y < g_ViewPort.Height)
	{
		outpos.x = vScreen.x;
		outpos.y = vScreen.y;
		outpos.z = vScreen.z;

		return true;
	}

	return false;
}


- - - Updated - - -

Something like doing like this?

Code:
void AddModel(LPDIRECT3DDEVICE9 Device)
{
	ModelInfo_t* pModel = new ModelInfo_t;
         DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x0000;
	CRenderData* RenderData = (CRenderData*)(dwRenderData);

	Device->GetViewport(&viewport);
	D3DXVECTOR3 vScreenCoord(0, 0, (float)aimheight), vWorldLocation(0, 0, 0);

	D3DXVec3Project(&vScreenCoord, &vWorldLocation, &viewport, &RenderData->ToMyProject, &RenderData->ToMyView, &RenderData->ToMyWOrld); //Pointed to my game

	if (vScreenCoord.z < 1)
	{
	pModel->Position2D.x = vScreenCoord.x;
	pModel->Position2D.y = vScreenCoord.y;
	}

	ModelInfo.push_back(pModel);
}
Quote Originally Posted by lvous View Post
Do you have the address for enemies in crosshair? Try my autoshoot, I also added distance esp. pastebin.com/PJhNQfG3
Yeah, I have it, I'm even using right now, so I don't aim dead stuff, flying boxes, etc, just using it like a 'alive-check'. I just opened my old projects, and this is how I used to do my bot for tera http://pastebin.com/rseG93bXⓘ . Hey, if you want, you could add me in skype, and maybe we can make some fun bot or something, " fuzzu_wuzzu " not with 1.
Quote Originally Posted by Jhem View Post
[FONT="Comic Sans MS"][COLOR="Red"][SIZE="2"][B]

How can be done the w2s?
..
Something like doing like this?

Code:
void AddModel(LPDIRECT3DDEVICE9 Device)
{
	ModelInfo_t* pModel = new ModelInfo_t;
         DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x0000;
	CRenderData* RenderData = (CRenderData*)(dwRenderData);

	Device->GetViewport(&viewport);
	D3DXVECTOR3 vScreenCoord(0, 0, (float)aimheight), vWorldLocation(0, 0, 0);

	D3DXVec3Project(&vScreenCoord, &vWorldLocation, &viewport, &RenderData->ToMyProject, &RenderData->ToMyView, &RenderData->ToMyWOrld); //Pointed to my game

	if (vScreenCoord.z < 1)
	{
	pModel->Position2D.x = vScreenCoord.x;
	pModel->Position2D.y = vScreenCoord.y;
	}

	ModelInfo.push_back(pModel);
}
Point blank is using settransform if I remember correctly, if you want wotldtoscreen without offsets then just use this:
Code:
Device->GetViewport(&viewport);
D3DXMATRIX projection, view, world;
D3DXVECTOR3 vScreenCoord(0, 0, (float)aimheight), vWorldLocation(0, 0, 0);

Device->GetTransform(D3DTS_VIEW, &view);
Device->GetTransform(D3DTS_PROJECTION, &projection);
Device->GetTransform(D3DTS_WORLD, &world);

D3DXVec3Project(&vScreenCoord, &vWorldLocation, &viewport, &projection, &view, &world);

if (vScreenCoord.z < 1)
{
pModel->Position2D.x = vScreenCoord.x;
pModel->Position2D.y = vScreenCoord.y;
}
Of course it would be better if you find the offsets, I don't have the game.
Quote Originally Posted by lvous View Post
Point blank is using settransform if I remember correctly, if you want wotldtoscreen without offsets then just use this:
Code:
Device->GetViewport(&viewport);
D3DXMATRIX projection, view, world;
D3DXVECTOR3 vScreenCoord(0, 0, (float)aimheight), vWorldLocation(0, 0, 0);

Device->GetTransform(D3DTS_VIEW, &view);
Device->GetTransform(D3DTS_PROJECTION, &projection);
Device->GetTransform(D3DTS_WORLD, &world);

D3DXVec3Project(&vScreenCoord, &vWorldLocation, &viewport, &projection, &view, &world);

if (vScreenCoord.z < 1)
{
pModel->Position2D.x = vScreenCoord.x;
pModel->Position2D.y = vScreenCoord.y;
}
Of course it would be better if you find the offsets, I don't have the game.
I have the offsets. So I can use this w2s?
And BTW, PB game doesn't have a correct Model or stride, it is possible to do the head only?
Code:
void AddModel(LPDIRECT3DDEVICE9 Device)
{
	ModelInfo_t* pModel = new ModelInfo_t;
         DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x0000;
	CRenderData* RenderData = (CRenderData*)(dwRenderData);

	Device->GetViewport(&viewport);
	D3DXVECTOR3 vScreenCoord(0, 0, (float)aimheight), vWorldLocation(0, 0, 0);

	D3DXVec3Project(&vScreenCoord, &vWorldLocation, &viewport, &RenderData->ToMyProject, &RenderData->ToMyView, &RenderData->ToMyWOrld); //Pointed to my game

	if (vScreenCoord.z < 1)
	{
	pModel->Position2D.x = vScreenCoord.x;
	pModel->Position2D.y = vScreenCoord.y;
	}

	ModelInfo.push_back(pModel);
}
Quote Originally Posted by lvous View Post
Of course it would be better if you find the offsets, I don't have the game.


Grabbed the addresses last night, and my bot is fully working.

In my dll:
Code:
if(Base==NULL)Base=(UINT_PTR)GetModuleHandle("TERA.exe");

CrosshairIDBase = read<DWORD>(Base + 0x1D17BA4);  
if(CrosshairIDBase != NULL)CrosshairIDBaseOffset1 = read<DWORD>(CrosshairIDBase + 0x14); 
if(CrosshairIDBaseOffset1 != NULL)CrosshairIDBaseOffset2 = read<DWORD>(CrosshairIDBaseOffset1 + 0x2e4); 
if(CrosshairIDBaseOffset2 != NULL)CrosshairID = read<DWORD>(CrosshairIDBaseOffset2 + 0x28);
In my bot.exe, reading externally:

Code:
DWORD FFS = mem.read<int>((DWORD)Base + 0x1D17BA4);
DWORD FirstPointer = mem.read<int>((DWORD)FFS + 0x14);
DWORD SecondPointer = mem.read<int>((DWORD)FirstPointer + 0x2e4);
DWORD CurrentDistance = mem.read<int>((DWORD)SecondPointer + 0x28);

DWORD HealthAddress1 = mem.read<int>((DWORD)Base + 0x01D17BA4);
DWORD HealthAddressOffset1 = mem.read<int>((DWORD)HealthAddress1 + 0x14);
DWORD HealthAddressOffset2 = mem.read<int>((DWORD)HealthAddressOffset1 + 0x40);
DWORD HealthAddressOffset3 = mem.read<int>((DWORD)HealthAddressOffset2 + 0x10);


DWORD CurrentDistance = mem.read<int>((DWORD)SecondPointer + 0x28);
DWORD CurrentHealth = mem.read<int>((DWORD)HealthAddressOffset3 + 0x48);
DWORD CurrentMana = mem.read<int>((DWORD)HealthAddressOffset3 + 0x78);
DWORD CurrentResolve = mem.read<int>((DWORD)HealthAddressOffset3 + 0x498);
DWORD IdCheck = mem.read<int>((DWORD)SecondPointer + 0x1c);
Now, there's probably a better way to read all this, but I don't know it. I also tried that distance esp, and all i'm getting is 0's. How did you manage to do it?
Quote Originally Posted by ves23 View Post
Grabbed the addresses last night, and my bot is fully working.

In my dll:
Code:
if(Base==NULL)Base=(UINT_PTR)GetModuleHandle("TERA.exe");

CrosshairIDBase = read<DWORD>(Base + 0x1D17BA4);  
if(CrosshairIDBase != NULL)CrosshairIDBaseOffset1 = read<DWORD>(CrosshairIDBase + 0x14); 
if(CrosshairIDBaseOffset1 != NULL)CrosshairIDBaseOffset2 = read<DWORD>(CrosshairIDBaseOffset1 + 0x2e4); 
if(CrosshairIDBaseOffset2 != NULL)CrosshairID = read<DWORD>(CrosshairIDBaseOffset2 + 0x28);
In my bot.exe, reading externally:

Code:
DWORD FFS = mem.read<int>((DWORD)Base + 0x1D17BA4);
DWORD FirstPointer = mem.read<int>((DWORD)FFS + 0x14);
DWORD SecondPointer = mem.read<int>((DWORD)FirstPointer + 0x2e4);
DWORD CurrentDistance = mem.read<int>((DWORD)SecondPointer + 0x28);

DWORD HealthAddress1 = mem.read<int>((DWORD)Base + 0x01D17BA4);
DWORD HealthAddressOffset1 = mem.read<int>((DWORD)HealthAddress1 + 0x14);
DWORD HealthAddressOffset2 = mem.read<int>((DWORD)HealthAddressOffset1 + 0x40);
DWORD HealthAddressOffset3 = mem.read<int>((DWORD)HealthAddressOffset2 + 0x10);


DWORD CurrentDistance = mem.read<int>((DWORD)SecondPointer + 0x28);
DWORD CurrentHealth = mem.read<int>((DWORD)HealthAddressOffset3 + 0x48);
DWORD CurrentMana = mem.read<int>((DWORD)HealthAddressOffset3 + 0x78);
DWORD CurrentResolve = mem.read<int>((DWORD)HealthAddressOffset3 + 0x498);
DWORD IdCheck = mem.read<int>((DWORD)SecondPointer + 0x1c);
Now, there's probably a better way to read all this, but I don't know it. I also tried that distance esp, and all i'm getting is 0's. How did you manage to do it?
Thanks for the offsets don't have much time right now but I will try later. Well the distance esp works fine in the example I posted, you use D3DXVec3Unproject and then get the distance between VectorMiddle and vIn
Code:
D3DXVECTOR3 VectorMiddle..
D3DXVec3Unproject(&VectorMiddle, &ScreenMiddlee, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);
D3DXVec3Project(&vOut, &vIn, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);
float RealDistance = GetDistance(VectorMiddle.x, VectorMiddle.y, vIn.x, vIn.y);
Quote Originally Posted by lvous View Post
Thanks for the offsets don't have much time right now but I will try later. Well the distance esp works fine in the example I posted, you use D3DXVec3Unproject and then get the distance between VectorMiddle and vIn
Code:
D3DXVECTOR3 VectorMiddle..
D3DXVec3Unproject(&VectorMiddle, &ScreenMiddlee, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);
D3DXVec3Project(&vOut, &vIn, &Viewport, &ProjMatrix, &ViewMatrix, &WorldMatrix);
float RealDistance = GetDistance(VectorMiddle.x, VectorMiddle.y, vIn.x, vIn.y);
Any idea how to lock the aimbot, to 1 target, like for an example, if I have 1 target in my fov, to aim at it and ignore all others ? Btw, got the distance thingy working, and im using it, instead of crosshair difference, i think its much better
Posts 31–45 of 51 · Page 3 of 4
This thread is closed for replies.

Similar Threads

Tags for this Thread

Talk with us