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

misha

Пользователи
  • Постов

    62
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные misha

  1. Что-то я совсем туплю:)

    Вот есть у меня строка байтов:

    EB 00 90 90

    Её длина 4байт.

    Адреса начала сканирования

    0000000000000000

    и конца

    7fffffffffffffff

    .

    Вот попробовал все это расставить:


    {
    for(;*szMask;++szMask,++pData,++bMask)
    if(*szMask=='x' && *pData!=*bMask )
    return false;
    return (*szMask) == NULL;
    }

    DWORD dwFindPattern(DWORD (0000000000000000),DWORD (7fffffffffffffff), BYTE *bMask, char * szMask) {
    for(DWORD i=0;i<dwLen;i++)
    if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
    return (DWORD)(dwAddress+i);
    return NULL;
    }
    bool bDataCompare(const BYTE* (0EBh,000h,090h,090h), const BYTE* (x0xx), const char* (4))

    Посмотрите правильно вставил данные?

  2. Ссылку глянул. Я новичок в си, насколько я понял по видеоуроку, там просиходит инекция длл. Функция что там описана, можете ее синтаксис расписать? Или может есть способ попроще для поиска адреса по известным байтам?


    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;
    using System.Media;

    namespace Train
    {
    public partial class Form1 : Form
    {
    string text = " RomaN predstavlyaet ";
    Memory oMemory = new Memory();
    Process[] oProcess;
    bool GameRunning = false;

    ///Код функции вставлять сюда?

    bool UnlimitedHelath = false;
    string HealthPointer = "0072836C";
    int[] HealthOffset = { 0x84, 0x64 };
    int HealthToFill = 999;

    bool UnlimitedSanity = false;
    string SanityPointer = "0072836C";
    int[] SanityOffset = { 0x84, 0x68 };
    int SanityToFill = 999;

    bool UnlimitedOilLevel = false;
    string OilPointer = "0072836c ";
    int[] OilOffset = { 0x84, 0x6C };
    int OilToFill = 102;

    bool UnlimitedTinderboxes = false;
    string TinderboxesPointer = "0072836C";
    int[] TinderboxesOffset = { 0x84, 0x78 };
    int TinderboxesToFill = 999;

    public Form1()
    {
    InitializeComponent();
    }

    private readonly SoundPlayer _soundPlayer = new SoundPlayer();
    private void GameRunningTMR_Tick(object sender, EventArgs e)
    {
    oProcess = Process.GetProcessesByName("FlashEx_Client");
    if (oProcess.Length != 0)
    {
    GameRunning = true;
    label5.Text = "Game Running";
    }
    else
    {
    GameRunning = false;
    label5.Text = "The Game Is Not Running";
    }
    }

    private void label1_Click(object sender, EventArgs e)
    {
    if (GameRunning)
    {
    if (UnlimitedTinderboxes)
    {
    UnlimitedTinderboxes = false;
    label1.Text = "F1---- Unlimited Tinderboxes on/off";
    }
    else
    {
    UnlimitedTinderboxes = true;
    label1.Text = "F1---- Unlimited Tinderboxes on/off";

    }

    }
    }

    private void label2_Click(object sender, EventArgs e)
    {
    if (GameRunning)
    {
    if (UnlimitedHelath)
    {
    UnlimitedHelath = false;
    label2.Text = "F2---- Unlimited Health on/off";
    }
    else
    {
    UnlimitedHelath = true;
    label2.Text = "F2---- Unlimited Health on/off";

    }

    }
    }

    private void label3_Click(object sender, EventArgs e)
    {
    if (GameRunning)
    {
    if (UnlimitedSanity)
    {
    UnlimitedSanity = false;
    label3.Text = "F3--- Unlimited Sanity on/off";
    }
    else
    {
    UnlimitedSanity = true;
    label3.Text = "F3--- Unlimited Sanity on/off";

    }
    }
    }

    private void label4_Click(object sender, EventArgs e)
    {
    if (GameRunning)
    {
    if (UnlimitedOilLevel)
    {
    UnlimitedOilLevel = false;
    label4.Text = "F4---- Unlimited Oil Level on/off";
    }
    else
    {
    UnlimitedOilLevel = true;
    label4.Text = "F4---- Unlimited Oil Level on/off";

    }
    }
    }

    private void UnlimitedHealthTMR_Tick(object sender, EventArgs e)
    {
    Process[] aProcessces = Process.GetProcessesByName("FlashEx_Client");
    if (UnlimitedHelath)
    {

    oMemory.ReadProcess = oProcess[0];
    oMemory.Open();

    int pointerAdress = Addr.ToDec(HealthPointer);
    int[] pointerOffset = HealthOffset;

    int bytesWritten;
    byte[] valueToWrite = BitConverter.GetBytes((float)HealthToFill);
    string sWritten_Address = oMemory.PointerWrite((IntPtr)pointerAdress, valueToWrite, pointerOffset, out bytesWritten);

    // if (bytesWritten == valueToWrite.Length)
    // label7.Text = ("Health Activation");
    //else
    // label7.Text = ("Health Deactivation");



    oMemory.CloseHandle();
    }
    Process[] aProcesses = Process.GetProcessesByName("FlashEx_Client");
    if (UnlimitedSanity)
    {
    oMemory.ReadProcess = oProcess[0];
    oMemory.Open();

    int pointerAdress = Addr.ToDec(SanityPointer);
    int[] pointerOffset = SanityOffset;

    int bytesWritten;
    byte[] valueToWrite = BitConverter.GetBytes((float)SanityToFill);
    string sWritten_Address = oMemory.PointerWrite((IntPtr)pointerAdress, valueToWrite, pointerOffset, out bytesWritten);

    oMemory.CloseHandle();
    }
    Process[] aProcessses = Process.GetProcessesByName("FlashEx_Client");
    if (UnlimitedOilLevel)
    {
    oMemory.ReadProcess = oProcess[0];
    oMemory.Open();

    int pointerAdress = Addr.ToDec(OilPointer);
    int[] pointerOffset = OilOffset;

    int bytesWritten;
    byte[] valueToWrite = BitConverter.GetBytes((float)OilToFill);
    string sWritten_Address = oMemory.PointerWrite((IntPtr)pointerAdress, valueToWrite, pointerOffset, out bytesWritten);

    oMemory.CloseHandle();
    }
    Process[] aProcesssces = Process.GetProcessesByName("FlashEx_Client");
    if (UnlimitedTinderboxes)
    {
    oMemory.ReadProcess = oProcess[0];
    oMemory.Open();

    int pointerAdress = Addr.ToDec(TinderboxesPointer);
    int[] pointerOffset = TinderboxesOffset;

    int bytesWritten;
    byte[] valueToWrite = BitConverter.GetBytes(TinderboxesToFill);
    string sWritten_Address = oMemory.PointerWrite((IntPtr)pointerAdress, valueToWrite, pointerOffset, out bytesWritten);

    oMemory.CloseHandle();
    }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    KeyboardHook.CreateHook(KeyReader);
    }
    public void KeyReader(IntPtr wParam, IntPtr lParam)
    {
    int key = Marshal.ReadInt32(lParam);
    KeyboardHook.VK vk = (KeyboardHook.VK)key;
    String temp = "";

    switch (vk)
    {
    case KeyboardHook.VK.VK_F1: temp = "<-F1->";
    break;
    case KeyboardHook.VK.VK_F2: temp = "<-F2->";
    break;
    case KeyboardHook.VK.VK_F3: temp = "<-F3->";
    break;
    case KeyboardHook.VK.VK_F4: temp = "<-F4->";
    break;
    case KeyboardHook.VK.VK_F5: temp = "<-F5->";
    break;
    case KeyboardHook.VK.VK_F6: temp = "<-F6->";
    break;
    case KeyboardHook.VK.VK_F7: temp = "<-F7->";
    break;
    case KeyboardHook.VK.VK_F8: temp = "<-F8->";
    break;
    case KeyboardHook.VK.VK_F9: temp = "<-F9->";
    break;
    case KeyboardHook.VK.VK_F10: temp = "<-F10->";
    break;
    case KeyboardHook.VK.VK_F11: temp = "<-F11->";
    break;
    case KeyboardHook.VK.VK_F12: temp = "<-F12->";
    break;
    case KeyboardHook.VK.VK_NUMLOCK: temp = "<-numlock->";
    break;
    case KeyboardHook.VK.VK_SCROLL: temp = "<-scroll>";
    break;
    case KeyboardHook.VK.VK_LSHIFT: temp = "<-left shift->";
    break;
    case KeyboardHook.VK.VK_RSHIFT: temp = "<-right shift->";
    break;
    case KeyboardHook.VK.VK_LCONTROL: temp = "<-left control->";
    break;
    case KeyboardHook.VK.VK_RCONTROL: temp = "<-right control->";
    break;
    case KeyboardHook.VK.VK_SEPERATOR: temp = "|";
    break;
    case KeyboardHook.VK.VK_SUBTRACT: temp = "-";
    break;
    case KeyboardHook.VK.VK_ADD: temp = "+";
    break;
    case KeyboardHook.VK.VK_DECIMAL: temp = ".";
    break;
    case KeyboardHook.VK.VK_DIVIDE: temp = "/";
    break;
    case KeyboardHook.VK.VK_NUMPAD0: temp = "0";
    break;
    case KeyboardHook.VK.VK_NUMPAD1: temp = "1";
    break;
    case KeyboardHook.VK.VK_NUMPAD2: temp = "2";
    break;
    case KeyboardHook.VK.VK_NUMPAD3: temp = "3";
    break;
    case KeyboardHook.VK.VK_NUMPAD4: temp = "4";
    break;
    case KeyboardHook.VK.VK_NUMPAD5: temp = "5";
    break;
    case KeyboardHook.VK.VK_NUMPAD6: temp = "6";
    break;
    case KeyboardHook.VK.VK_NUMPAD7: temp = "7";
    break;
    case KeyboardHook.VK.VK_NUMPAD8: temp = "8";
    break;
    case KeyboardHook.VK.VK_NUMPAD9: temp = "9";
    break;
    case KeyboardHook.VK.VK_Q: temp = "q";
    break;
    case KeyboardHook.VK.VK_W: temp = "w";
    break;
    case KeyboardHook.VK.VK_E: temp = "e";
    break;
    case KeyboardHook.VK.VK_R: temp = "r";
    break;
    case KeyboardHook.VK.VK_T: temp = "t";
    break;
    case KeyboardHook.VK.VK_Y: temp = "y";
    break;
    case KeyboardHook.VK.VK_U: temp = "u";
    break;
    case KeyboardHook.VK.VK_I: temp = "i";
    break;
    case KeyboardHook.VK.VK_O: temp = "o";
    break;
    case KeyboardHook.VK.VK_P: temp = "p";
    break;
    case KeyboardHook.VK.VK_A: temp = "a";
    break;
    case KeyboardHook.VK.VK_S: temp = "s";
    break;
    case KeyboardHook.VK.VK_D: temp = "d";
    break;
    case KeyboardHook.VK.VK_F: temp = "f";
    break;
    case KeyboardHook.VK.VK_G: temp = "g";
    break;
    case KeyboardHook.VK.VK_H: temp = "h";
    break;
    case KeyboardHook.VK.VK_J: temp = "j";
    break;
    case KeyboardHook.VK.VK_K: temp = "k";
    break;
    case KeyboardHook.VK.VK_L: temp = "l";
    break;
    case KeyboardHook.VK.VK_Z: temp = "z";
    break;
    case KeyboardHook.VK.VK_X: temp = "x";
    break;
    case KeyboardHook.VK.VK_C: temp = "c";
    break;
    case KeyboardHook.VK.VK_V: temp = "v";
    break;
    case KeyboardHook.VK.VK_B: temp = "b";
    break;
    case KeyboardHook.VK.VK_N: temp = "n";
    break;
    case KeyboardHook.VK.VK_M: temp = "m";
    break;
    case KeyboardHook.VK.VK_0: temp = "0";
    break;
    case KeyboardHook.VK.VK_1: temp = "1";
    break;
    case KeyboardHook.VK.VK_2: temp = "2";
    break;
    case KeyboardHook.VK.VK_3: temp = "3";
    break;
    case KeyboardHook.VK.VK_4: temp = "4";
    break;
    case KeyboardHook.VK.VK_5: temp = "5";
    break;
    case KeyboardHook.VK.VK_6: temp = "6";
    break;
    case KeyboardHook.VK.VK_7: temp = "7";
    break;
    case KeyboardHook.VK.VK_8: temp = "8";
    break;
    case KeyboardHook.VK.VK_9: temp = "9";
    break;
    case KeyboardHook.VK.VK_SNAPSHOT: temp = "<-print screen->";
    break;
    case KeyboardHook.VK.VK_INSERT: temp = "<-insert->";
    break;
    case KeyboardHook.VK.VK_DELETE: temp = "<-delete->";
    break;
    case KeyboardHook.VK.VK_BACK: temp = "<-backspace->";
    break;
    case KeyboardHook.VK.VK_TAB: temp = "<-tab->";
    break;
    case KeyboardHook.VK.VK_RETURN: temp = "<-enter->";
    break;
    case KeyboardHook.VK.VK_PAUSE: temp = "<-pause->";
    break;
    case KeyboardHook.VK.VK_CAPITAL: temp = "<-caps lock->";
    break;
    case KeyboardHook.VK.VK_ESCAPE: temp = "<-esc->";
    break;
    case KeyboardHook.VK.VK_SPACE: temp = " "; //was <-space->
    break;
    case KeyboardHook.VK.VK_PRIOR: temp = "<-page up->";
    break;
    case KeyboardHook.VK.VK_NEXT: temp = "<-page down->";
    break;
    case KeyboardHook.VK.VK_END: temp = "<-end->";
    break;
    case KeyboardHook.VK.VK_HOME: temp = "<-home->";
    break;
    case KeyboardHook.VK.VK_LEFT: temp = "<-arrow left->";
    break;
    case KeyboardHook.VK.VK_UP: temp = "<-arrow up->";
    break;
    case KeyboardHook.VK.VK_RIGHT: temp = "<-arrow right->";
    break;
    case KeyboardHook.VK.VK_DOWN: temp = "<-arrow down->";
    break;
    default: break;
    }
    #region Key triggers

    if (temp == "<-F1->")
    {
    if (GameRunning)
    {
    if (UnlimitedTinderboxes)
    {
    UnlimitedTinderboxes = false;
    label1.Text = "F1---- Unlimited Tinderboxes off";
    _soundPlayer.Stream = Properties.Resources.deactivated;
    _soundPlayer.Play();
    }
    else
    {
    UnlimitedTinderboxes = true;
    label1.Text = "F1---- Unlimited Tinderboxes on";
    _soundPlayer.Stream = Properties.Resources.activated;
    _soundPlayer.Play();
    }
    }
    }


    if (temp == "<-F2->")
    {
    if (GameRunning)
    {
    if (UnlimitedHelath)
    {
    UnlimitedHelath = false;
    label2.Text = "F2---- Unlimited Health off";
    _soundPlayer.Stream = Properties.Resources.deactivated;
    _soundPlayer.Play();
    }
    else
    {
    UnlimitedHelath = true;
    label2.Text = "F2---- Unlimited Health on";
    _soundPlayer.Stream = Properties.Resources.activated;
    _soundPlayer.Play();
    }
    }
    }


    if (temp == "<-F3->")
    {
    if (GameRunning)
    {
    if (UnlimitedSanity)
    {

    UnlimitedSanity = false;
    label3.Text = "F3---- Unlimited Sanity off";
    _soundPlayer.Stream = Properties.Resources.deactivated;
    _soundPlayer.Play();
    }
    else
    {
    UnlimitedSanity = true;
    label3.Text = "F3---- Unlimited Sanity on";
    _soundPlayer.Stream = Properties.Resources.activated;
    _soundPlayer.Play();
    }
    }
    }

    if (temp == "<-F4->")
    {
    if (GameRunning)
    {
    if (UnlimitedOilLevel)
    {

    UnlimitedOilLevel = false;
    label4.Text = "F4---- Unlimited Oil Level off";
    _soundPlayer.Stream = Properties.Resources.deactivated;
    _soundPlayer.Play();
    }
    else
    {
    UnlimitedOilLevel = true;
    label4.Text = "F4---- Unlimited Oil Level on";
    _soundPlayer.Stream = Properties.Resources.activated;
    _soundPlayer.Play();

    }
    #endregion
    }
    }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    text = text.Substring(1) + text[0];
    label6.Text = text;
    }
    }
    }
    using System;

    Чем скрывать код не нашел.

  3. Привет всем. Кто может сталкивался с проблемой?

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

  4. Ох, что-то мне это напоминает. Кстати, зачем трейнер должен уметь ставить брейкпоинты? Что-то я не могу навскидку придумать.

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

  5. В трейнере СЕ можно делать абсолютно все тоже, что и в скрипте. И бряки, и тд. Кстати положение с защитой-привязкой трейнера скоро решится, нашли функции подключения библиотеки апи винды в скрипте. Осталось разобраться где и как там вытаскивать серийные номера железа, может уже кто занимался и есть примеры?

  6. Это можно поправить изменив исходники Cheat Engine. При чем это не просто. А без знаний языка программирования почти не реально.

    Так, что крупный облом  вышел с "привязкой" для автономных трейнеров на CE ;)  

    Есть ссыль на исходники?

×
×
  • Создать...

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

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