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

Лидеры


Популярный контент

Показан контент с высокой репутацией 08.05.2015 во всех областях

  1. 1 балл
    Ответ на твой вопрос здесь - http://stackoverflow.com/questions/7474504/compiling-a-win32-gui-app-without-a-console-using-mingw-and-eclipse
  2. 1 балл
    Он записывает побайтово адрес куда прыгать в перевернутом виде (так нужно делать, так как инструкция jmp принимает относительные адреса и в перевернутом виде). Это можно записать более красиво кстати (тогда циклы типа for(int i = 0;i<4;i++) ), будут вообще не нужны, т.к. в результате выполнения этих операций мы уже получим результат в "перевёрнутом" виде. DWORD jmp_newmem = 0 - (newmem - address) - 5;DWORD jmp_address = 0 - (address - newmem) - sizeof(injection);О том, как рассчитываются прыжки в x86 асме ты можешь почитать тут: http://stackoverflow.com/questions/7609549/calculating-jmp-instructions-address http://stackoverflow.com/questions/8196835/calculate-the-jmp-opcodes Ну и еще можешь погуглить.
  3. 1 балл
    1 - Итак приступим первое что нам нужно это добавить этот скрипт LUA function debugger_onBreakpoint()if (RIP == getAddress("items")) then RIP=getAddress("itemsnewmem") debug_continueFromBreakpoint(co_run) return 1elseif (RIP == getAddress("healthbase")) then RIP=getAddress("healthnewmem") debug_continueFromBreakpoint(co_run) return 1elseif (RIP == getAddress("skillpoints")) then RIP=getAddress("skillpointsnewmem") debug_continueFromBreakpoint(co_run) return 1elseif (RIP == getAddress("creedpoints")) then RIP=getAddress("creedpointsnewmem") debug_continueFromBreakpoint(co_run) return 1else debug_continueFromBreakpoint(co_run) return 0 endendfunction SetBreakPointNow(AddressofAOB)debug_setBreakpoint(AddressofAOB)endfunction RemoveBreakPointNow(AddressofAOB)endfunction ActiveTheScripts()pause()table=getAddressList()i=1while i<5 domemory_record1=addresslist_getMemoryRecord(table,i)memoryrecord_freeze(memory_record1)i = i+3endlocal isActive=memoryrecord_isActive(memory_record1) --get the state after the hotkey got triggeredunpause()endfunction StartDebugging()debugProcess(2)endfunction DeActiveTheScripts()pause()table=getAddressList()i=1while i<5 domemory_record1=addresslist_getMemoryRecord(table,i)memoryrecord_unfreeze(memory_record1)i = i+1endlocal isActive=memoryrecord_isActive(memory_record1) --get the state after the hotkey got triggered[ENABLE]LuaCall(StartDebugging()) -- Запускает отладчик//LuaCall(ActiveTheScripts()) -- Если активно то активирует скрипты автоматически[DISABLE]LuaCall(DeActiveTheScripts()) -- Выключает скрипты[ENABLE]aobscanmodule(items,ACU.exe,39 78 28 0F 93 C0 48 8B 5C 24 30 48 83 C4 20 5F C3 48 8B 5C 24 30 48 83 C4 20 5F C3)registersymbol(items)alloc(itemsnewmem,2048,items)registersymbol(itemsnewmem)label(originalcode)label(above63)label(returnhere)registersymbol(itemE) -- Регистрируем метку отвечающую за кол-во предметовregistersymbol(moneyE) -- Регистрируем метку отвечающую за кол-во денегlabel(moneyE) -- Создаем метку отвечающую за кол-во денегlabel(itemE) -- Создаем метку отвечающую за кол-во предметовitemsnewmem: cmp [rax+28],63jg above63cmp [itemE],0je originalcodemov [rax+28],63jmp originalcodeabove63:cmp [moneyE],0je originalcodemov [rax+28],#9999999originalcode2:cmp [rax+28],edisetae aljmp returnhereitemE:dd 0moneyE:dd 0items+6://"ACU.exe"+EBD057://jmp newmem//nopreturnhere:LuaCall(SetBreakPointNow("items"))[DISABLE]items:////cmp [rax+28],edi//setae alLuaCall(RemoveBreakPointNow("items"))//Alt: db 39 78 28 0F 93 C0unregistersymbol(items)unregistersymbol(itemE)unregistersymbol(moneyE)unregistersymbol(itemsnewmem)dealloc(itemsnewmem)
×
×
  • Создать...

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

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