Перейти к содержанию

Рекомендуемые сообщения

image.png


Int32 BaseAddress = 0x00400000;
Int32 MyOffset = 0x0021E45C;


IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset + 30);
Int32 DestAddress = VAM.ReadInt32(MainPointer);//это пункт A



IntPtr MinorPointer = (IntPtr)(DestAddress + 0x96);
Int32 ValueAddress = VAM.ReadInt32(MinorPointer) ;//это пункт B

Int32 MyValue = VAM.ReadInt32(ValueAddress);//это пункт C

textBox1.Text = Convert.ToString(MyValue);

Ссылка на комментарий
Поделиться на другие сайты

Int32 MyValue = VAM.ReadInt32(ValueAddress);//это пункт C

не возможно преобразование

Process[] aProcesses = Process.GetProcessesByName("hitman2");
if (aProcesses.Length != 0)
{
oMemory.ReadProcess = aProcesses[0];
oMemory.Open();

int iStep2_Address = Addr.ToDec("21E45C"); без 00 в начале
int[] iStep2_Offsets = { 0x30, 0x96 };
int bytesWritten;
byte[] bValue_To_Write = BitConverter.GetBytes(1000);

string sWritten_Address = oMemory.PointerWrite((IntPtr)iStep2_Address, bValue_To_Write, iStep2_Offsets, out bytesWritten);

if (bytesWritten == bValue_To_Write.Length)
MessageBox.Show("Wrote 1000 to " + sWritten_Address + "!");
else
MessageBox.Show("There was an error writing 1000 to " + sWritten_Address + ".");

oMemory.CloseHandle();
}
}

блин хороший вариант но без базы

Ссылка на комментарий
Поделиться на другие сайты

image.png


Int32 BaseAddress = 0x00400000;
Int32 MyOffset = 0x0021E45C;


IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset + 30);
Int32 DestAddress = VAM.ReadInt32(MainPointer);//это пункт A



IntPtr MinorPointer = (IntPtr)(DestAddress + 0x96);
Int32 ValueAddress = VAM.ReadInt32(MinorPointer) ;//это пункт B

Int32 MyValue = VAM.ReadInt32(ValueAddress);//это пункт C

textBox1.Text = Convert.ToString(MyValue);

Только что я писал о том, что нельзя адрес типизировать как int32 перменной ValueAddress. Метод ReadInt32 не подходит для чтения адреса.

Ссылка на комментарий
Поделиться на другие сайты

а что для вывода прочитанного адрес нужно? какой метод

единственное что я знаю похоже на Read это ReadBytes/ReadChars (как то писал программку с обменом сообщения ..и эти методы высчитывали N кол-во байтов)

Ссылка на комментарий
Поделиться на другие сайты

а что для вывода прочитанного адрес нужно? какой метод

единственное что я знаю похоже на Read это ReadBytes/ReadChars (как то писал программку с обменом сообщения ..и эти методы высчитывали N кол-во байтов)

О боги. Иди смотри уроки кенга по C# может быть поймёшь.

Также неплохо бы всё-таки прочитать об указателях на ВИКИ и поизучать WinAPI на MSDN.

Ссылка на комментарий
Поделиться на другие сайты

а если тыкнуть носом

ну подскажите пожалуйста чтоб я забыл всё это как страшный сон..

и вас не мучил и себя

Проще объяснить просто невозможно)

Ссылка на комментарий
Поделиться на другие сайты

ну как всегда. понятно что я мало знаю..

Coder


VAM = new VAMemory("hitman2");
Int32 BaseAddress = 0x00400000;//это база её можно найти через Се во вкладки Memory View -View-Enumerate DLL
Int32 MyOffset = 0x0021E45C;//указатель


IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset + 0x30);//смещение не знаю как использовать либо 30 либо 0x30
Int32 DestAddress = VAM.ReadInt32(MainPointer);//это пункт A



IntPtr MinorPointer = (IntPtr)(DestAddress + 0x96);//второе смещение
Int32 ValueAddress = VAM.ReadInt32(MinorPointer);//это пункт B


textBox1.Text = Convert.ToString(MinorPointer);

так будет верно или нет? и как мне перевести в другую систему так ка int отличается совсем от того что находиться в СЕ и я не смогу через другую программу вставив этот полученный результат подключиться к процессу и найти адрес

image.pngimage.pngimage.pngimage.png

Coder если знаешь почему не хочешь помочь? на ошибках лучше всё запоминается ..да и вспомни как сам начинал всё было легко?скажи..и что всё всё в книгах было ??я думаю что нет

От Администратора:

Уважаемый пользователь, прошу Вас воспользоваться такой фишкой как спойлеры

[spoiler=Hidden]Скрытый текст[/spoiler]

//Kvazimado

Ссылка на комментарий
Поделиться на другие сайты

Int32 MyValue = VAM.ReadInt32(ValueAddress);//это пункт C

невозможно преобразование

Просто забыл дописать Int32 MyValue = VAM.ReadInt32((IntPtr)ValueAddress);

Про числа: 0x30 - это шеснатитеричная система счисления(смещения с CE записаны имеено в ней). 30 - (без 0x перед числом) это десятичная СС.

Ссылка на комментарий
Поделиться на другие сайты

а каким способом я могу конвиртировать Стринг в 16чную систему?

когда 2 смещения было ещё хоть как то ясно а для одного смещения я правильно сделал?


VAM = new VAMemory("hitman2");
Int32 BaseAddress = 0x00400000;//это база её можно найти через Се во вкладки Memory View -View-Enumerate DLL
Int32 MyOffset = 0x021FDEA0;//указатель


IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset);
Int32 DestAddress = VAM.ReadInt32(MainPointer);//это пункт A



IntPtr MinorPointer = (IntPtr)(DestAddress + 0x30);
Int32 ValueAddress = VAM.ReadInt32(MinorPointer);//это пункт B

Int32 MyValue = VAM.ReadInt32((IntPtr)ValueAddress);//это пункт C

textBox1.Text = Convert.ToString(0x0+ValueAddress);

MessageBox.Show("адрес-----" + ValueAddress);

в итоге жму на кнопку и в textBoxe вегда меняется цирф..я так и не пойму я вышел на значение адреса или на "АДРЕС" я хочу вывести адрес

Ссылка на комментарий
Поделиться на другие сайты

а каким способом я могу конвиртировать Стринг в 16чную систему?

Слушай, ты задаешь вопросы, которые не относятся к взлому игр, но относятся к программированию на определенном языке. Вопросы по программированию можно задать в определенной ветке форума, но сомневаюсь, что кто-то станет отвечать на вопрос, на который можно легко найти ответ в гугле.

Ссылка на комментарий
Поделиться на другие сайты

HPB, не стоит сводить весь свет к VaMemory. Поисковиком можно и нужно пользоваться. Там найдёшь кучу примеров на C# и среди них код по чтению указателей. И ещё запись и чтение указателей в трейнере не лучший вариант. Более предпочтительнее исправление кода игры - чаще всего это проще, чем искать указатели в играх.

Ссылка на комментарий
Поделиться на другие сайты

просто есть план выполнения найти адрес: на который указывает указатель +смещение + базу



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;

using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Globalization;
using System.Threading;


namespace Half
{
public partial class Form1 : Form
{

VAMemory VAM;

public Form1()
{
InitializeComponent();
VAM = new VAMemory("hitman");
Int32 BaseAddress = 0x00400000;//это база её можно найти через Се во вкладки Memory View -View-Enumerate DLL
Int32 MyOffset = 0x012DF0F0;//указатель


IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset);
Int32 DestAddress = VAM.ReadInt32(MainPointer);
IntPtr MinorPointer = (IntPtr)(DestAddress + 0x30);
Int32 ValueAddress = VAM.ReadInt32(MinorPointer);//это пункт B
Int32 MyValue = VAM.ReadInt32((IntPtr)DestAddress);

textBox1.Text = "0x" + Convert.ToString(MyValue, 16);




private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.ToUpper();
}

но что за шняга ...этот код последовательно выполняясь выведет мне АДРЕС или что то другое?

если адрес который содержит в себе "указатель" то почему он постоянно Статический даже когда я перезапускаю игру он не DMA такое чувство что я прочитал значение

Ссылка на комментарий
Поделиться на другие сайты

но что за шняга ...этот код последовательно выполняясь выведет мне АДРЕС или что то другое?

Ты копипастишь код не зная, что он делает. Слушайся советам, используй поисковик и научись хоть что-нибудь в С#'е.

Ссылка на комментарий
Поделиться на другие сайты

я не копировал код у меня был сначала один который я делал по гайду так скажем ..затем здесь мне посоветовали придержаться такого метода

Ссылка на комментарий
Поделиться на другие сайты

я не копировал код у меня был сначала один который я делал по гайду так скажем ..затем здесь мне посоветовали придержаться такого метода

Знаний у тебя 0, вывод = copy + paste.

Я тебе сказал, что и как делать.

Посмотри, может разберёшься.

Ссылка на комментарий
Поделиться на другие сайты

чёрт такое чуство что вы не понимаете что я хотел бы от функциональности программы

У меня такое чувство, что ты не полноценный какой-то.

Ссылка на комментарий
Поделиться на другие сайты

:-D ну я бы не стал бы обращаться на форум если бы знал как это сделать

да я мало знаю c# а по вашему мнению я совсем ничего не знаю..

просто я изучаю её по школьной системе и ничего такого вот ещё не было ,думаю и не будет

Ссылка на комментарий
Поделиться на другие сайты

Address op pointer ->hitman2.exe+0021E45C

BaseAddress->0040000

и как теперь быть?

как мне выйти на адрес Give the new address :051BE746 .....после нахождение выдать пользователю его в TextBoxe

image.png

Ссылка на комментарий
Поделиться на другие сайты


VAM = new VAMemory("Play.exe");
Int32 Sme = 0x30;
Int32 BaseAddress = 0x00400000;//это база её можно найти через Се во вкладки Memory View -View-Enumerate DLL
Int32 MyOffset = 0x0FFD4F20;//указатель

IntPtr MainPointer = (IntPtr)(BaseAddress + MyOffset);
Int32 DestAddress = VAM.ReadInt32(MainPointer);



IntPtr MinorPointer = (IntPtr)(DestAddress + Sme);
Int32 ValueAddress = VAM.ReadInt32(MinorPointer);

Int32 MyValue = VAM.ReadInt32((IntPtr)ValueAddress);

textBox1.Text = Convert.ToString(MyValue);

в текстбоксе "0"

может всё из за того что тип "float"

..

закройте тему я нашёл изъян в таком способе выхода на адрес : )

но если у кого то будет рабочий способ то прошу вас всё равно выложить

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.