Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 12:50   #1
XreniX
Пользователь
 
Аватар для XreniX
 
Регистрация: 22.02.2011
Сообщений: 10
По умолчанию Код для смены адреса

Вот код
++++++++++++++++++++++++
VAM = new VAMemory("winmine"); // Имя процесса, без .exe!
VAM.WriteByte((IntPtr)0x01005194, byte.Parse(textBox1.Text.ToString() )); // Изменяем значение по адресу 01005194, не забываем про 0x********!

++++++++++++++++++++++++
Мне нужен такой которым можно изменить исходное значение в игре
не использую тест бокс

Вот например!

VAM = new VAMemory("pointblank"); // название процесса
VAM.WriteByte((IntPtr)0x01005194, и чтоб этот адрес менялся на этот 0x01005185
Подскажите что надо дописать
XreniX вне форума Ответить с цитированием
Старый 22.02.2011, 13:04   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а зачем вам надо менять адрес вы понимаете?

PS: задумайтесь, я этот вопрос задал не спроста.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2011, 13:22   #3
XreniX
Пользователь
 
Аватар для XreniX
 
Регистрация: 22.02.2011
Сообщений: 10
Смех

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а зачем вам надо менять адрес вы понимаете?

PS: задумайтесь, я этот вопрос задал не спроста.
Пишу чит на игру поинт бланк! Там есть исходный адрес когда я в этом адресе редактирую коды то для новых кодов меняется адрес
XreniX вне форума Ответить с цитированием
Старый 22.02.2011, 14:10   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

значит надо искать указатель на блок этих данных.
а если данные в стеке то это может быть вообще не разрешимо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2011, 14:26   #5
XreniX
Пользователь
 
Аватар для XreniX
 
Регистрация: 22.02.2011
Сообщений: 10
По умолчанию

Вот пытался сам сделать
Но всё равно выдаёт ошибку что процесс не найден

Код:
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;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        VAMemory VAM;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Exet(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            VAM = new VAMemory("pointblank"); //Имя процесса, без .exe!
            VAM.WriteByte((IntPtr)0x058B0AA9, byte.Parse(textBox1.Text.ToString())); // Изменяем значение по адресу 058B0AA9, не забываем про 0x********!
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            VAM = new VAMemory("pointblank"); // 
            label1.Text = (Convert.ToString(VAM.ReadByte((IntPtr)0x058B0AA9))); //label1 принимает значение по адрессу 01005194 не забываем про 0x********!
        }
    }
}
XreniX вне форума Ответить с цитированием
Старый 22.02.2011, 20:49   #6
WOWka777
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 37
По умолчанию

Код:
#include <windows.h>
#include<winuser.h>
#include <iostream>
#include <conio.h>

using namespace std;

HANDLE NEW_OpenProcess(DWORD dwProcessId)
{
        HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
        
        if (hProcess == NULL)
        {
            TOKEN_PRIVILEGES Priv, PrivOld;
            DWORD cbPriv = sizeof(PrivOld);
            HANDLE hToken;
 
            // получаем токен текущего потока 
            if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, FALSE, &hToken))
            {
                // используем токен процесса, если потоку не назначено
                // никакого токена
                OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, &hToken);
            }
 
            Priv.PrivilegeCount = 1;
            Priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
            LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Priv.Privileges[0].Luid);
 
            // попробуем включить привилегию
            AdjustTokenPrivileges(hToken, FALSE, &Priv, sizeof(Priv), &PrivOld, &cbPriv);
    
            // попробуем открыть описатель процесса еще раз
            hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
        
            // восстанавливаем исходное состояние привилегии
            AdjustTokenPrivileges(hToken, FALSE, &PrivOld, sizeof(PrivOld), NULL, NULL);
            CloseHandle(hToken);
        }
 
        return hProcess;
}

int main()
{
    int address = 0x0012FF60; //Адрес ячейки памяти
    int value=0;
	LPCWSTR WindowName=L"Окно";//Имя окна
    DWORD pid;
    HWND hwnd = FindWindow(NULL,WindowName); //хендл окна
	
	if(!hwnd)
		{
		cout <<"Window not found!";
		getch();
		return 0;
		} 
	 
		GetWindowThreadProcessId(hwnd,&pid); //Получаем Process ID
		HANDLE phandle=NEW_OpenProcess(pid); //= OpenProcess(PROCESS_ALL_ACCESS,true,pid); //Получаем доступ к процессу

     if(!phandle)
       {
        cout <<"Could not get handle!";
		getch();
	  return 0;
        }
	if(ReadProcessMemory(phandle,&address,&value,4,0))//; //Делаем запрос на чтение памяти нашего процесса, value - буфер куда копируются данные
	  {                             
		cout << "Result is: ";
		cout << value; // выводим данные на экран
		getch();
		return 0;
	  } 
	else 
		{cout<<"Fail!!!:(";}
}
WOWka777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула для подсчета рабочего времени при ночной смены. sakramann Microsoft Office Excel 20 16.10.2013 15:50
программа для смены прокси designer999 Фриланс 18 17.09.2010 17:40
Адреса для секций Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 15.05.2009 05:23