вопрос delphi -> ReadProcessMemory + Double - как вывести?
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 2 из 2
  1. #1
    Гость форума

    Регистрация
    27.05.2015
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    Question вопрос delphi -> ReadProcessMemory + Double - как вывести?

    15:39 22.06.2016

    Всем здраствуйте.
    Прошу помощи.
    Возник вопрос. пишу своего бота. вижу в AtrMany и CheatEngine 6.4. нужную ячейку. в CheatEngine при отсеивании и поиске указателя вижу вверху combo_box там можно выбрать тип числа -что мы хотим увидеть и при выборе:

    4 byte: 2405181686

    а типа double - видим то что и должны видеть ( то что в ячейке лежит )..

    double: 2774,88

    в делфи у меня получается считывыать ТОЛЬКО тип 4byte. ( исходник ниже )

    ( т.е на форме лежит лейбл куда пишется то что беру из ячейки памяти). и вижу я там число 4 byte: 2405181686
    а в ячейке тестовой программы лежит ( double: 2774,88 ) - и если я его меняю, то и в CheatEngine - число тоже меняется, и если я в CheatEngine меняю тип числа на 4byte - то и вижу тоже что и на своей форме в лейбле... возник вопрос ( ищу уже давно ответ ):

    как считать данные типа double.
    или каким алгоритмом из числа 4byte = 2405181686
    получить число типа double: 2774,88

    т.е. как правильно считать из памяти число с плавающей точкой типа double.

    ------- ниже исходинк делфи ( 2006, winxp_sp3)
    форма имеет 2 лейбла и один таймер.
    вся инфа выводится в 1-й лебл.
    --------------
    ============ begin source code ============
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls;

    type
    TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    procedure Timer1Timer(Sender: TObject);


    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Timer1Timer(Sender: TObject);

    var

    hWin: hWnd; // для поиска хендла окна
    ProcId: cardinal; // для поиска ID процесса
    hProc: THandle;

    AdressW: dword; // сюда прочитаем адрес из указателя
    Adress: dword;
    readwrite: Cardinal;

    begin

    hWin:=FindWindow(nil, 'Frm_1');

    if hWin<>0 then

    GetWindowThreadProcessId(hWin, @ProcId);

    hProc:= OpenProcess(Process_All_Access, False, ProcId);

    AdressW:=$46c8e0; //Адрес // правильный - показывает то что надо
    label2.Caption := 'Данные в ячейке $46c8e0 сейчас равны: ';

    begin

    ReadProcessMemory(hProc, pointer(AdressW), @Adress, sizeof(Adress), readwrite); // читаем адрес из указателя

    ReadProcessMemory(hProc, pointer(Adress+$4d0), @Adress, sizeof(Adress), readwrite);

    ReadProcessMemory(hProc, pointer(Adress+$40), @Adress, sizeof(Adress), readwrite);

    ReadProcessMemory(hProc, pointer(Adress+$5d0), @Adress, sizeof(Adress), readwrite);

    ReadProcessMemory(hProc, pointer(Adress+$6b4), @Adress, sizeof(Adress), readwrite);

    ReadProcessMemory(hProc, pointer(Adress+$2fc), @Adress, sizeof(Adress), readwrite);

    end;

    //label1.Caption:=intToStr(Adress) ;
    label1.Caption := FloatToStr(Adress);

    CloseHandle(hProc);

    end;

    end.
    ============end source code ============

    т.е. данный код нормально читает , но число я вижу не в том формате - как в ячейке...
    как вывести число в формате Double с точкой.?

    спасибо.

  2. #2
    Гость форума

    Регистрация
    27.05.2015
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: вопрос delphi -> ReadProcessMemory + Double - как вывести?

    Мда...... ответ я уже нашел.
    Если кому будет интересно то:
    http://www.programmersforum.ru/showt...=1#post1616778

Похожие темы

  1. VPN-Service/Double VPN/Best OPENVPN GUI
    от In-Disguise в разделе Безопасность
    Ответов: 13
    Последнее сообщение: 04.06.2016, 20:41
  2. ищу Delphi
    от Циля в разделе Прикладное программирование
    Ответов: 1
    Последнее сообщение: 17.11.2013, 18:18
  3. ReadProcessMemory и struct возвращает нулевое значение
    от X-rayboy в разделе Прикладное программирование
    Ответов: 0
    Последнее сообщение: 31.07.2012, 09:53
  4. DELPHI & SQL
    от kskb7771 в разделе Прикладное программирование
    Ответов: 11
    Последнее сообщение: 29.03.2010, 14:50
  5. Double-Take For ESX server
    от temom в разделе СОФТ (SOFT)
    Ответов: 0
    Последнее сообщение: 24.01.2008, 15:16

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •