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

SnedS91

Ветераны
  • Постов

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

  • Посещение

  • Победитель дней

    22

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

  1. Если про редакторы, то у меня на первом месте Sublime Text, там есть буквально все что нужно для счастья и открывается в секунды :) Для веб разработок можно PhpStorm использовать (от тех же JetBrains) А выбор языка должен исходить из поставленных задач, по сути понимая общие принципы построения алгоритмов, можно изучить абсолютно любой язык только лишь прочитав синтаксис. Мне какое то время нравилась Java (даже для телефона сделал пару игр для себя) Сейчас плотно программирую на php, т.к. зарабатываю на создании и продвижении сайтов. Главное в изучении не терять энтузиазм и каждый день читать новости и документацию по языку, таким путем можно вполне стать профессионалом в короткие сроки и быть довольно востребованным.

    • Плюс 1
  2. 2 часа назад, pachela сказал:

    Это хорошо. И тут же сразу вопрос такой, имеет ли разница в скобочках? Двойные или одинарные ставятся? И еще, а можно ли в байтах обозначенных "??" ставить варианты, ну типа есть вариант что примерт такой вид или иной, но не совершенно иной? Возможно в виде переменной это обозначать? Ну это просто из любознательности, на последний вопрос можно ответить кратко: Да или Нет. И за это будет большое спасибо.

    Представленный тобой скрипт работает отлично! Спасибо большое.

    "??" или "xx" обозначение неизвестного байта. Переменную можно в принципе использовать, получится что-то вроде подстановки в шаблон.

    36 минуты назад, pachela сказал:

    Такс. Ну вот бороздя просторы большого ютубо-гугла я нашел причину почему трейнер вешается при активации, а точнее решение. Это запускать сканирование в потоки. Как я понял, то у меня должен быть 1 поток. Сначала 1 поток сканирует сигнатуру и записывает адрес. Далее поток освобождается и мы можем снова его использовать, что бы запустить цикл перезаписи, если изменяется значение в адресе.

    Я все правильно понял?

    Можно не использовать явно потоки, а создать таймер, например:

    tmr = createTimer(nil,true)
    function check()
     print('test') --тут свое сравнение и запись байт
    end
    tmr.setOnTimer(check)
    tmr.setInterval(200)

     

  3. Скрытый текст
    
    function CEButton1Click(sender)
    	GameName = "notepad++.exe"
    	
    	if(openProcess(GameName) == nil) then
    	   showMessage("запустите процесс!")
    	   return
    	end
    
    	result = AOBScan('тут свои байты')
    	if(result == nil) then
    	   showMessage("сигнатура не рабочая!")
    	   return
    	end
    	count = result.Count
    	i = 0
    	while i~= count do
    		address = result.getString(i)
    		writeBytes(address,{0x60,0xE3,0x16,0x00})
    		i = i + 1
    	end
    	showMessage("активировано!")
    end

     

    Возможно в таком виде тебя устроит скрипт :)

  4. Все это довольно чудесно, семья, это безусловно замечательно. Носом тут и без того тыкают, сказал же, сначала проверить на наличие ошибок в синтаксисе, т.к. программный код не терпит малейших ошибок. :)

    Кроме того в Lua есть возможность использовать aobscan более удобным способом, т.е. не набором байт, а строкой, к примеру:

    AOBScan('A0 86 01 ?? 00') //можно и без пробелов 
  5. 53 минуты назад, pachela сказал:

    1. Можно на русском, что делает openProcess()? Он создает процесс или переключается на него?

    2. Сигнатура на 100% нужная. Первые 4 байта дублируются в конце сигнатуры всегда. Был бы код не на Луа, а на "С", при использовании патерна, я бы с 13 байта и по 0хА0 поставил бы "?", т.к. эти байты при определенных условиях могут изменяться. Но для начала нужно разобраться с "топорной" сигнатурой и не допускать изменения наличной сигнатуры. Т.е. пока я не захочу, эта сигнатура будет иметь именно такой вид.

    Уважаемый pachela. Имею смелость заметить, что вы используете какой то заведомо "рабочий" код, изменив его под себя, не понимая сути. Мы лишь можем направить или указать на ошибки в общем случае.

    Во-первых, советую ознакомиться с синтаксисом (в данном случае Lua) и обратить внимание на опечатки в коде.

    Во-вторых, все инструкции CE используемые в Lua описываются подробно в файле main.lua, находящимся в корневой папке с Cheat Engine.

    В-третьих, использовать "??" в сигнатуре до сих пор возможно. 

    • Плюс 2
  6. Вставлю свои 5 копеек=) Добавляет недостающих объектов до 10000 и не дает удалять, если объектов меньше тех же 10000.

     

    Скрытый текст
    
    [ENABLE]
    alloc(obj_add, $1000)
    label(delete)
    label(exit)
    label(exit2)
    
    
    obj_add:
      mov eax,#10000
      sub eax,dword ptr [esp]
      cmp eax,0
      jl @f
      add esp,14
      jmp TrainMe(hard_1_0).exe+1167
    @@:
      add esp,10
      lea ecx,[esp+0C]
      jmp exit
    
    delete:
      cmp eax,#10000
      jbe TrainMe(hard_1_0).exe+11BD
      jmp exit2
    
    TrainMe(hard_1_0).exe+111C:
      jmp delete
      db 90 90 90
    exit2:
    
    TrainMe(hard_1_0).exe+11AB:
      jmp obj_add
      db 90 90
    exit:
    
    [DISABLE]
    TrainMe(hard_1_0).exe+111C:
      test eax,eax
      jbe TrainMe(hard_1_0).exe+11BD
    
    TrainMe(hard_1_0).exe+11AB:
      add esp,10
      lea ecx,[esp+0C]
    
    dealloc(obj_add)

     

    • Плюс 2
  7. В 31.07.2014в08:04, Xipho сказал:

    Прошло два года и наконец-то у меня появилось немного времени. Написал новую версию своего трейнми. Хотя, новой версией это назвать нельзя, весь код переписан с нуля и графическая часть реализована на OpenGL, хотя, конечно, необходимости в этом не было ) Так, баловался. Да, игра не заканчивается, просто продолжается постоянно, и комп в качестве второго игрока я еще не добавил. Это все будет в следующей версиии

    Сами значения пока особо спрятать не пытался, так что взлом, скорее всего, будет быстрым. Задания:

    1. Найти очки игрока 1 и написать иньекцию кода с заморозкой значения

    2. То же самое, но для второго игрока

    3. Найти статичный указатель для очков игрока 1

    4. То же самое для второго игрока

    5. Найти и заморозить координаты ракеток (обеих)

    6. Изменить размер ракеток на двойной

    7. Увеличить вдвое размера шарика

    8. Сделать так, чтобы скорость шарика не увеличивалась с течением времени

    9. (Сложно) Перекрасить шарик в красный цвет

    И пока на этом все.

    ЗЫ. Управление - Escape - выход из трейнми. W/S - ракетка вверх/вниз для первого игрока, P/L - ракетка вверх/вниз для второго игрока. Первые трое, кто успеет выполнить хотя бы пять заданий из всего набора, получат медальки и +10 к репутации. Первый выполнивший 7 и более заданий получит две медали и +30 к репутации. Второй выполнивший 7 и более заданий получит одну медаль и +25 к репутации. Третий выполнивший 7 заданий и более - получит медаль и +20 к репутации. Удачного взлома!

    Прошло довольно много времени, давненько не заходил.. Вот моя версия взлома =) TennisTrainme_v2.CT

    • Плюс 2
  8. то есть это надо внедриться в процесс и сделать хук на peekmessage? тогда всплывает вопрос, а как мой трейнер оповещать о перехваченных сообщениях? было бы все просто, если бы я делал dll + exe трейнер, но мне бы по возможности хотелось избежать такого метода

    просто попробуй сначала сделать хук на СЕ при включенной игре, просто интересно на какой глубине игра блочит обработку клавиш =) потом посмотрим

  9. Ну, как вариант, можешь попробовать через таймер проверять нажатые клавиши...

    Пример:


    local key1 = VK_1
    local key2 = VK_2
    local key3 = VK_3
    local keyTmr = createTimer(nil,true)

    function checkKey()
    if isKeyPressed(key1) then initParams(1, false)
    elseif isKeyPressed(key2) then initParams(1.1, true)
    elseif isKeyPressed(key3) then initParams(1.25,true)
    end
    end

    keyTmr.onTimer(checkKey)
    keyTmr.setInterval(200)

  10. Скрипт делал для себя, но вдруг кому пригодится.

    При использовании автоаттача к процессу, включенные скрипты/значения не отключаются/размораживаются, так скрипт сделает это за вас.


    local CEPanel = wincontrol_getControl(getMainForm(),3)
    local tmr = createTimer(nil,true)
    tmr:setInterval(1000)
    function checkClosed()
    local procname = wincontrol_getControl(CEPanel,0):getCaption():gsub('^%x+-','')
    local pid = getProcessIDFromProcessName(procname)
    if pid == nil then
    local addresslist = getAddressList()
    if addresslist.Count > 0 then
    for i = 0, addresslist.Count-1 do
    addresslist.MemoryRecord[i].Active = false
    end
    end
    end
    end
    tmr:setOnTimer(checkClosed)

    Можно положить в папку autorun и забыть.

    autofix.7z

    • Плюс 1
  11. Итак, выкладываю результат своей мыслительной работы.

    Определился с интерфейсом и способом общения с пользователем. Далее по пунктам:

    Оформление:

    - выбор цвета для различных элементов (фон, подсветка, выделение, статус..)

    - выбор размера и цвета шрифта

    Настройки:

    - плагин умеет загружать/сохранять настройки с помощью ini-файла - все настройки следует производить в нём (находится в папке autorun)

    - цвет задается в формате #RRGGBB (примеры цветов можно найти здесь)

    - при загрузке плагина, при отсутствии ini-файла, он создается с настройками по-умолчанию

    Меню:

    - система простого меню для обеспечения быстрого поиска

    - навигация по меню с помощью стрелок, клавиш Enter и Backspace

    - в меню настроек редактирование полей происходит нажатиями Влево/Вправо

    Статус:

    - это самая нижняя строка, содержимое которой зависит от положения курсора-подсветки

    - при позициях курсора на Value и Value2 отображается содержимое самих значений этих полей

    - при нахождении в меню настроек так же отображается значения полей

    Пока не сделано:

    - сама система поиска (сейчас как раз работаю над этим)

    - универсальность и настройка хоткеев

    - возможность управления мышкой (скоро появится)

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

    Скрины:

    post-8695-0-55915300-1380447684_thumb.pnpost-8695-0-08357900-1380447686_thumb.pn

    Собственно, сам плагин (Версия 0.1): CEGuiView_0.1.7z

    • Плюс 3
  12. Вариантов масса.

    - неправильно выбран инструкция/адрес.

    - если есть проверка целостности, то попытаться найти ее и убрать =) либо воспользоваться стелс-плагином.. есть вероятность что поможет

    - не использовать скрипты. Можно заморозить адрес(если он правильный, конечно) и спокойно играть =)

  13. такой вот вопросик... ты найденный адрес здоровья, проверял? например, если заморозить его, получаешь бессмертие?

    и еще.. когда составил скрипт, нажимай file - assign to current table, чтобы в таблицу добавить его, а потом уже активируй..

    ну и еще.. немного непонятен сам скрипт, что ты хочешь от него получить?

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

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

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