Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй свой счет с помощью банковских карт через Gate2Shop
udmurt2
88
udmurt2 2010.09.30 01:26 
#import "kernel32.dll"
   int  GetCurrentProcess();
   int  WriteProcessMemory(int handle, int address, int& buffer[], int size, int& written);
#import

int ProcessPatch(int address, int byte)
{
   int mem[1];
   int out;
   mem[0] = byte;
   int hproc = GetCurrentProcess();
   int result = WriteProcessMemory(hproc, address, mem, 1, out);
   return (result);
}

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   ProcessPatch(0x5402dc, 0);
   ProcessPatch(0x5402dd, 0);
   ProcessPatch(0x5403fb, 0);
   ProcessPatch(0x5403fc, 0);
   ProcessPatch(0x540501, 0);
//----
   return(0);
  }


он вобщем понятен.

Но интересует - что это за числовые параметры для функции ProcessPatch?

Куда именно записывается 0 ?

Алексей
63
Алексей 2010.09.30 07:46  

Код зануляет элементы памяти терминала, см http://msdn.microsoft.com/en-us/library/ms681674%28VS.85%29.aspx

Числовые константы - адреса памяти, куда производится запись. Скорее всего, какие-то структуры данных, возможно, какие-то счётчики или ещё что-то, но не код, т.к. DWORD 0 крайне редко встречается в опкодах. Чтобы узнать конкретно, что там, надо дизассемблить терминал и/или гонять его под отладчиком. Естественно, всё скорее всего будет работать только под каким-то одним бинарником терминала, в новом билде все адреса "уплывут"

Откуда у вас этот код? Где он используется?

udmurt2
88
udmurt2 2010.09.30 14:14  

этот код взял со страницы http://eareview.net/tick-data 

hrenfx
3672
hrenfx 2010.09.30 14:18  
Это запрет MT4 регенирировать каждый раз FXT-файл.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий