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

misha

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

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

  • Посещение

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

  1. Дело в том, что надо ставить брейкпоинт на инструкции (выделить её и нажать F5).

    Когда брейкпоинт сработает, тогда сработает функция debugger_onBreakpoint()

    Аналогично, проверял, вручную тормозится на все ссылаемые адреса (последовательное нажатие ф9 после запуска брейкпойнта по ф5).

    Инструкция ссылается на адреса около 2000раз в сек.

  2. Тему не буду новую открывать, итак напостил)

    Сталкивался уже давно, что дебаггер СЕ в скриптовом режиме плохо работает с высокочастотными инструкциями.

    К примеру беру в игре адрес,

    screenshotfjs.png

    Выводит мне n-адресов. Пишу скрипт вида


    function debugger_onBreakpoint()
    debugState = 2

    ONdebugger()
    return 1
    end
    ........
    function ONdebugger(adres)
    ...............
    adres0=EAX+10
    print (adres0)
    end

    В итоге скрипт не выводит ничего.

    Может есть какие-то скрытые параметры дебаггера СЕ или в чем может быть дело?

  3. Здравствуйте!

    Суть такова:

    1) Ищу адреса в виде массива

    2) По хоткею идет обработка массива вида:


    for i=1, 30 do
    writedouble (massiv_adresov[i], 100)
    end

    В игре происходит мини подвисание, в чем может быть причина?

    ПС если разложить массив на отдельные адреса и каждый адрес прописывать отдельным writedouble, а не циклом, то никаких торможений не наблюдал.

  4. Собственно, в тренере использую поле ввода, потом в коде с него берется текст. Можно ли брать число (сделать так, чтобы можно вводить только числа), чтобы потом использовать с ним операции сравнения?


    ------------------------------------
    edit1=createEdit(frmtrainer)
    --------------------------------
    a=getProperty(edit1, "Text")
    --------------------------------
    b=20
    if a<b then
    ------------------
    end
    ------------------

    Вылетает ошибка, что a-строковая переменная или содежит текст.

  5. Забыл указать, что СЕ, поправьте заголовок.

    Да получается изврат- и там и сям делать)

    Пришлось создавать в визуале форму с AlphaBlend =0 , и которая по созданию сразу прячется.

    Зря тогда надпись в генераторе визуальном гласит, что собрав трейнер вручную- Вы почувствуете всю мощь луа :-D

    Но почему то такой способ не катит- не работает поиск сигнатуры в той форме, что вручную создается.

    Вы говорили про

    2) Либо делай свой диалог и откажись от openDialog_execute

    Как такое можно с пом луа сварганить?

  6. собственно в мануалах есть как вызывать диалог выбора файла:


    openDialog_execute( frmExampleTrainer_odExampleTrainer )

    frmExampleTrainer- это имя вормы трейнера,

    odExampleTrainer- имя диалога.

    Так вот последнее нужно создать, но нигде не нахожу как?

    ПС в визуальном редакторе решения не предлагать :-D

  7. также не работает как и этот код. Тут переменная addressMoneyAobscan не распознается внутри ААскрипта. Спасает вставка Аобскана внутрь ААскрипта, но тогда в остальном главном скрипте переменную никак не распознать!

  8. Привет! Использовал раньше вставки ассемблера для стационарных адресов, а сейчас понадобилось для адреса, найденного с помощью аобскан. Как быть?

    Простое подставление в код не помогает.

    Вот пример:


    results=AOBScan("83 C4 10 F3 0F 7E 4D D8 66 0F 57 C0 F2 0F 2A C0 F2 0F 59 C8 66 0F D6 4D E0","+X-W-C")
    count=stringlist_getCount(results)
    address_aob1 =getAddress(stringlist_getString(results,0))

    workTemplateAsmText1 = [[
    alloc(newmem,2048) //2kb should be enough
    label(returnhere)
    label(originalcode)
    label(exit)
    newmem: //this is allocated memory, you have read,write,execute access
    //place your code here
    originalcode:
    mulsd xmm1,xmm0
    mov [ebp-20],00000000

    exit:
    jmp returnhere
    ]]..address_aob1..[[
    jmp newmem
    nop
    nop
    nop
    nop
    returnhere: ]]
    autoAssemble(workTemplateAsmText1)

  9. Я тебя понял. Но адрес который я нашел как раз тот, что нужен. Если я от него найду адрес, который получает доступ к нему, то его сложно морозить, тк обращается он ко многим другим адресам

    Принцип заморозки буду так и делать прописывать значение в адрес.

  10. Да это понятно. Код пусть будет самый простой-поиск адреса и его заморозка.

    1-ищу аобсканом по сигнатуре адрес

    2-хочу этот адрес заморозить с пом меморирекорд


    memoryrecord_freeze (adresnaydenniy,0)

    Никакой заморозки не происходит.


    memoryrecord_freeze(memoryrecord, 0)

    тут memoryrecord- что это?

  11. Заполняется более подробное руководство (хотя оно уже как минимум не делю не обновлялось). Большое количество примеров можно найти на форуме CE и там же задать вопрос. А для более искушенных - тех, кто хочет знать ответы на любые вопросы, которые не обсуждались на этом форуме могут задать вопрос на форуме CE или поискать ответ в исходниках CE.

    В том руководстве слишком мало информации сейчас. Могу ли я помочь в наполнении?

    Когда все заполнится, будет незаменимой вещью для новичков, ибо слишком долго лазить по форумам, задавать вопрос и ждать пока ответят :-D

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

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

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