Вопрос Проблемы с чтением значений из памяти с использованием memory.dll в C#

Начинающий
Статус
Оффлайн
Регистрация
17 Ноя 2019
Сообщения
25
Реакции[?]
3
Поинты[?]
1K
Всем привет! Я новичок в программировании на C# и столкнулся с проблемой, в решении которой, надеюсь, опытные программисты смогут мне помочь. У меня возникла проблема: при попытке чтения значений из памяти в консоли ничего не отображается. Я использую библиотеку memory.dll и уверен, что адреса и указатели правильные, так как при перезапуске приложения через Cheat Engine значения находятся без проблем. Однако, по какой-то причине, я не могу считать эти значения непосредственно из кода. У кого-нибудь есть идеи, почему это происходит и как мне получить доступ к этим значениям? Буду очень благодарен за любую помощь или руководство! Заранее спасибо



Код:
using Memory;
using System;
using System.Diagnostics;
using System.Text;
 
namespace code
{
    class Program
    {
        static void Main()
        {
            Mem m = new Mem();
            bool ProcOpen = false;
            int name = m.GetProcIdFromName("cslauncher");
            Console.WriteLine("Id proc: {0}", name);
 
            ProcOpen = m.OpenProcess(name);
            Console.WriteLine(ProcOpen);
            while (true)
            {
                string coins = m.ReadMemory<string>("hw.dll+007BBD9C,90");
                Console.WriteLine("This is your situation now: " + coins);
                System.Threading.Thread.Sleep(200);
            }
 
            Console.ReadKey();
 
        }
    }
}
 
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
Когда я использовал memory.dll, у меня это происходило следующим образом:
C#:
string coins = m.ReadString("hw.dll+007BBD9C,90");
Если даже сейчас ты не сможешь прочитать значение, на всякий случай, попробуй сделать так:
C#:
string coins = m.ReadString("hw.dll+7BBD9C,90");
Здесь я всего лишь убрал нули, так как уже сталкивался с тем, что в Cheat Engine оно читало значение по такому адресу, а вот уже через трейнер, не читало из за нулей в начале
 
Начинающий
Статус
Оффлайн
Регистрация
17 Ноя 2019
Сообщения
25
Реакции[?]
3
Поинты[?]
1K
Когда я использовал memory.dll, у меня это происходило следующим образом:
C#:
string coins = m.ReadString("hw.dll+007BBD9C,90");
Если даже сейчас ты не сможешь прочитать значение, на всякий случай, попробуй сделать так:
C#:
string coins = m.ReadString("hw.dll+7BBD9C,90");
Здесь я всего лишь убрал нули, так как уже сталкивался с тем, что в Cheat Engine оно читало значение по такому адресу, а вот уже через трейнер, не читало из за нулей в начале
Спасибо, но проблема всетаки заключалась в том, что я использовал консольно приложение вместо windows form app. Не знаю с чем конкретно это было связанно т.к. я только новичек в этой теме, но все же.
 
Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2022
Сообщения
101
Реакции[?]
28
Поинты[?]
29K
Спасибо, но проблема всетаки заключалась в том, что я использовал консольно приложение вместо windows form app. Не знаю с чем конкретно это было связанно т.к. я только новичек в этой теме, но все же.
Так там без разницы какое приложение. Мне даже в консольку выводило все что я находил.
 
Сверху Снизу