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

Plugin AA Maker (создание АА скриптов)


Рекомендуемые сообщения

5 минут назад, Garik66 сказал:

Error:...les (x86)\Cheat Engine 6.5\autorun\aamaker _V240_G66.lua:819: attempt to perform arithmetic on a string value (local 'tempAddress')

 

Вот эту строчку можно заменить

script = string.gsub(script,'{$PrintLog}', GetTextLog(getNameFromAddress(address), getNameFromAddress(length + address)))

на эту
 

script = string.gsub(script,'{$PrintLog}', GetTextLog(getAddress(address) )

Функцию GetTextLog можно взять из поста выше. Если не получится, то можно оставить прошлый вариант. Я потом попроавлю

 

 

Ссылка на комментарий
Поделиться на другие сайты

Если не удалять ту строку :D:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin Version 2.4.0.G66 :)
  
    [EN]
	Technical support :
		http://forum.cheatengine.org/viewtopic.php?p=5645967
								 
	[RU]
	Техническая поддержка:
		https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT0,Tutorial-i386.exe+14DD20,C6 05 F0 E4 54 00 00)
alloc(newmem,$1000,Tutorial-i386.exe+14DD20)
label(code)
label(return)
registersymbol(INJECT0)

newmem:

code:
  mov byte ptr [0054E4F0],#100
  jmp return

INJECT0:
  jmp newmem
  nop
  nop
return:

[DISABLE]
INJECT0:
  db C6 05 F0 E4 54 00 00

unregistersymbol(INJECT0)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 05561632

05561628:                                  - ?? 
05561629:                                  - ?? 
0556162A:                                  - ?? 
0556162B:                                  - ?? 
0556162C:                                  - ?? 
0556162D:                                  - ?? 
0556162E:                                  - ?? 
0556162F:                                  - ?? 
05561630:                                  - ?? 
05561631:                                  - ?? 
// ---------- INJECTING HERE -----------
05561632:                                  - ?? 
// ---------- DONE INJECTING  ----------
05561633:                                  - ?? 
05561634:                                  - ?? 
05561635:                                  - ?? 
05561636:                                  - ?? 
05561637:                                  - ?? 
05561638:                                  - ?? 
05561639:                                  - ?? 
0556163A:                                  - ?? 
0556163B:                                  - ?? 
0556163C:                                  - ?? 
}

 

Из твоего скрипта, ещё раз спрошу мне нужно вставить же только эту часть:

Скрытый текст

function GetLine(address)
	local _,opcode, bytes, address = splitDisassembledString(disassemble(address))
	local bytes = bytes..string.rep (' ', 33 - string.len(bytes))
	return string.format('%s: %s- %s', getNameFromAddress(address), bytes, opcode)
end

function GetTextLog(address)
	local textLog = '{\r\n'
	textLog = textLog..'// ORIGINAL CODE - INJECTION POINT: '..getNameFromAddress(address)..'\r\n\r\n'
	local tempAddress = address
	local tempString = ''
	for i=1,10 do
		tempAddress = getPreviousOpcode(tempAddress)
		tempString = GetLine(tempAddress)..'\r\n'..tempString
	end
	textLog = textLog..tempString..'// ---------- INJECTING HERE -----------\r\n'
	textLog = textLog..GetLine(address)..'\r\n'
	textLog = textLog..'// ---------- DONE INJECTING  ----------\r\n'
	tempAddress = address
	for i=1,10 do
		tempAddress = tempAddress + getInstructionSize(tempAddress)
		textLog = textLog..GetLine(tempAddress)..'\r\n'
	end
	return textLog..'}'
end

 

Так как вот эта часть уже есть в плагине выше по коду:

Скрытый текст

function AddAARecord(script, sciptName)
	local addresslist = getAddressList()
	newTableEntry = addresslist.createMemoryRecord(addresslist)
	newTableEntry.setDescription(sciptName)
	newTableEntry.setType(vtAutoAssembler)
	newTableEntry.setScript(newTableEntry, script)
	return newTableEntry
end

 

 

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, MasterGH сказал:

Я сейчас поправлю, проверю и вышлю файл

offtopic.gif Ок. А я пока отдохну - посмотрю "Сплит" (давно хочу, но ни как не получается). А то у меня уже этот LUA-код постоянно перед глазами. Без знания языка всё-таки тяжело редактировать. 

 

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, MasterGH сказал:

Сделал

Быстро;

Скрытый текст

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+14DD20

Tutorial-i386.exe+14DCFC: B8 00000001                      - mov eax,01000000
Tutorial-i386.exe+14DD01: E8 BA24ECFF                      - call 004101C0
Tutorial-i386.exe+14DD06: EB 14                            - jmp 0054DD1C
Tutorial-i386.exe+14DD08: FF 35 00F05400                   - push [0054F000]
Tutorial-i386.exe+14DD0E: E8 4D35EBFF                      - call 00401260
Tutorial-i386.exe+14DD13: 85 C0                            - test eax,eax
Tutorial-i386.exe+14DD15: 74 05                            - je 0054DD1C
Tutorial-i386.exe+14DD17: E8 8425ECFF                      - call 004102A0
Tutorial-i386.exe+14DD1C: C9                               - leave 
Tutorial-i386.exe+14DD1D: C2 0C00                          - ret 000C
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+14DD20: C6 05 F0E45400 00                - mov byte ptr [0054E4F0],00
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+14DD27: B9 00806300                      - mov ecx,00638000
Tutorial-i386.exe+14DD2C: BA 04806300                      - mov edx,00638004
Tutorial-i386.exe+14DD31: B8 A03D5D00                      - mov eax,005D3DA0
Tutorial-i386.exe+14DD36: E8 65FFFFFF                      - call 0054DCA0
Tutorial-i386.exe+14DD3B: E8 70FFFFFF                      - call 0054DCB0
Tutorial-i386.exe+14DD40: B8 803D5D00                      - mov eax,005D3D80
Tutorial-i386.exe+14DD45: E8 6652ECFF                      - call 00412FB0
Tutorial-i386.exe+14DD4A: C3                               - ret 
Tutorial-i386.exe+14DD4B: 00 00                            - add [eax],al
Tutorial-i386.exe+14DD4D: 00 00                            - add [eax],al
}

 

Скрытый текст

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+14DD20

"Tutorial-i386.exe"+14DCFC: B8 00 00 00 01        -  mov eax,01000000
"Tutorial-i386.exe"+14DD01: E8 BA 24 EC FF        -  call Tutorial-i386.exe+101C0
"Tutorial-i386.exe"+14DD06: EB 14                 -  jmp Tutorial-i386.exe+14DD1C
"Tutorial-i386.exe"+14DD08: FF 35 00 F0 54 00     -  push [Tutorial-i386.exe+14F000]
"Tutorial-i386.exe"+14DD0E: E8 4D 35 EB FF        -  call Tutorial-i386.exe+1260
"Tutorial-i386.exe"+14DD13: 85 C0                 -  test eax,eax
"Tutorial-i386.exe"+14DD15: 74 05                 -  je Tutorial-i386.exe+14DD1C
"Tutorial-i386.exe"+14DD17: E8 84 25 EC FF        -  call Tutorial-i386.exe+102A0
"Tutorial-i386.exe"+14DD1C: C9                    -  leave 
"Tutorial-i386.exe"+14DD1D: C2 0C 00              -  ret 000C
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+14DD20: C6 05 F0 E4 54 00 00  -  mov byte ptr [Tutorial-i386.exe+14E4F0],00
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+14DD27: B9 00 80 63 00        -  mov ecx,Tutorial-i386.exe+238000
"Tutorial-i386.exe"+14DD2C: BA 04 80 63 00        -  mov edx,Tutorial-i386.exe+238004
"Tutorial-i386.exe"+14DD31: B8 A0 3D 5D 00        -  mov eax,Tutorial-i386.exe+1D3DA0
"Tutorial-i386.exe"+14DD36: E8 65 FF FF FF        -  call Tutorial-i386.exe+14DCA0
"Tutorial-i386.exe"+14DD3B: E8 70 FF FF FF        -  call Tutorial-i386.exe+14DCB0
"Tutorial-i386.exe"+14DD40: B8 80 3D 5D 00        -  mov eax,Tutorial-i386.exe+1D3D80
"Tutorial-i386.exe"+14DD45: E8 66 52 EC FF        -  call Tutorial-i386.exe+12FB0
"Tutorial-i386.exe"+14DD4A: C3                    -  ret 
"Tutorial-i386.exe"+14DD4B: 00 00                 -  add [eax],al
"Tutorial-i386.exe"+14DD4D: 00 00                 -  add [eax],al
}

 

Отлично.

Завтра тогда напишу, что нужно поправить в плагине подробно.

Ссылка на комментарий
Поделиться на другие сайты

CE Lua Plugin: "AA Maker"  Version 2.4.0.G66.1

1. Ошибки версии 2.4.0:G66.1

Теперь нужно решать ошибку "Error:Недопустимый объект класса" на инструкции: 

В 29.04.2017 в 00:41, Foxhound сказал:

В версии 3.2 по адресу Tutorial-i386.exe+1D0551 расположена инструкция add ah,[edx+00].

Сам СЕ 6.5 на ней работает корректно, в Плагине работает только корректно "Injection"  при оригинальном code в байтах (как и в СЕ)

Мне так и не удалось её решить, хотя вижу код @MasterGH из v 2.4.2 (стр. с 480 по 549 + с 559 по 570) вставить в v 2.4.0:G66.1 (стр. с 515 по 579 + с 590 по 598), но по-видимому нужно ещё что-то. Немного пробовал ещё, рассуждения в этом сообщении. 

Это единственно что не перенесено из версии 2.4.2. в версию 2.4.0:G66.1

Также эта ошибка появляется (только что обнаружил) на моде Diablo The Hell v1 209

 

2. Что нового в версии 2.4.0:G66.1 по сравнению с версии 2.4.2.:

2.01. Все плюшки MasterGH, реализованные в версии 2.4.2.добавлены.

2.02. В шапке плагина исправлена ссылка на этот топик.

2.03. В шапке проставлена сегодняшняя дата плагина.

2.04. Подключена, введённая, но не используемая MasterGH, переменная pluginVersion в шапках всех получаемых скриптов и вшита в код.

2.05. Изменены шапки всех получаемых скриптов (Также сегодня 30.04.17сделал шапку компактней и добавил версию СЕ) 

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

 

2.06. Изменены Template (как будет выглядеть) всех получаемых скриптов. Приведены к виду, который я :D предпочитаю. Если кому не понравится - переделайте под себя - это не сложно.

2.07. Изменён получаемый скрипт "Nop". поэтому добавлена и вшита в код переменная NopCodeTemplate.

2.08. Исправлена ошибка всех получаемых скриптов (кроме Simple и Инжект) для 64-битных игр.

2.09. Исправлен баг:

В 29.04.2017 в 00:41, Foxhound сказал:

 

Ладно, попробую показать на примере 3.2, посмотрел сейчас, там тоже такую ошибку можно вызвать.
В версии 3.2 по адресу Tutorial-i386.exe+1D0551 расположена инструкция add ah,[edx+00]. Следующая за ней инструкция - lock add ah,[edx+00] и идёт она по адресу Tutorial-i386.exe+1D0554. Если по первой инструкции по адресу Tutorial-i386.exe+1D0551 создать скрипт (например, Injection), который ничего не делает, просто вкл/выкл, то включается он нормально, но вот при выключении первая инструкция возвращается на место где и была по адресу Tutorial-i386.exe+1D0551, а вот вторая встаёт не на Tutorial-i386.exe+1D0554, а на Tutorial-i386.exe+1D0553 и ниже по коду появляются нопы.
Проблема, насколько я понимаю, в том, что при отключении скрипта вместо изначального [edx+00] обратно возвращается [edx] без нулевого офсета (это видно в окне дизассемблера), а поскольку он занимает какую-то длину, то без него происходит сдвиг кода. Проверь на указанных мной адресах и убедишься.

@partoftheworlD 

В 29.04.2017 в 02:57, partoftheworlD сказал:

 

766 строка


if origCodeType == true then script = string.gsub(script,"->>originalCode", originalBytes)
        else script = string.gsub(script,"->>originalCode", originalCode) end

на


if origCodeType == false then script = string.gsub(script,"->>originalCode", originalBytes)
        else script = string.gsub(script,"->>originalCode", originalCode) end

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

bandicam 2017-04-30 19-24-37-629.jpg

2.10. Выровнены Логи в получаемых скриптах.

2.11. Также я вернул старый AOBScan но так как не помню как он должен выглядеть (имею ввиду сигнатура). @MasterGHЭто тоже лучше проверить.

2.12. Также вернул счётчик адресов при создании новых скриптов будет метка INJECT0 (и т.д.).

 

3. Что не сделано в версии 2.4.0.G66.1:

3.01. Не работают скрипты Simple и Инжект для 64-битных игр. (может это и не нужно, но тогда лучше сделать эти панели в меню не активными для 64-битных игр.) Думаю, что для знающих, это тоже сделать не сложно. 

3.02. Не исправлена ошибка - см. выше

3.03. Чуть не забыл добавляется пустая строка вновь созданный скрипт, если не срабатывает фишка Плагина с Value. Для пояснения скрипты:

Value работает:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT0,Tutorial-i386.exe+23920,89 83 80 04 00 00 8D 55 D4 E8 52)
alloc(newmem,$1000,Tutorial-i386.exe+23920)
label(code)
label(return)
registersymbol(INJECT0)

newmem:

code:
  mov [ebx+00000480],#100
  jmp return

INJECT0:
  jmp newmem
  nop
return:

[DISABLE]
INJECT0:
  db 89 83 80 04 00 00

unregistersymbol(INJECT0)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23920

Tutorial-i386.exe+238FC: E8 0F9BFEFF                      - call 0040D410
Tutorial-i386.exe+23901: E8 1AB6FEFF                      - call 0040EF20
Tutorial-i386.exe+23906: 50                               - push eax
Tutorial-i386.exe+23907: 85 C0                            - test eax,eax
Tutorial-i386.exe+23909: 75 65                            - jne 00423970
Tutorial-i386.exe+2390B: B8 05000000                      - mov eax,00000005
Tutorial-i386.exe+23910: E8 5BADFEFF                      - call 0040E670
Tutorial-i386.exe+23915: 8D 50 01                         - lea edx,[eax+01]
Tutorial-i386.exe+23918: 8B 83 80040000                   - mov eax,[ebx+00000480]
Tutorial-i386.exe+2391E: 29 D0                            - sub eax,edx
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+23920: 89 83 80040000                   - mov [ebx+00000480],eax
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+23926: 8D 55 D4                         - lea edx,[ebp-2C]
Tutorial-i386.exe+23929: E8 52680100                      - call 0043A180
Tutorial-i386.exe+2392E: 8B 55 D4                         - mov edx,[ebp-2C]
Tutorial-i386.exe+23931: 8B 83 6C040000                   - mov eax,[ebx+0000046C]
Tutorial-i386.exe+23937: E8 D4DA0600                      - call 00491410
Tutorial-i386.exe+2393C: 83 BB 80040000 00                - cmp dword ptr [ebx+00000480],00
Tutorial-i386.exe+23943: 7D 2B                            - jnl 00423970
Tutorial-i386.exe+23945: A1 C4F15400                      - mov eax,[0054F1C4]
Tutorial-i386.exe+2394A: E8 A1290F00                      - call 005162F0
Tutorial-i386.exe+2394F: B8 64000000                      - mov eax,00000064
}

 

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT1,Tutorial-i386.exe+23918,8B 83 80 04 00 00)
alloc(newmem,$1000,Tutorial-i386.exe+23918)
label(code)
label(return)
registersymbol(INJECT1)

newmem:

code:
  mov [ebx+00000480],#100
  mov eax,[ebx+00000480]
  jmp return

INJECT1:
  jmp newmem
  nop
return:

[DISABLE]
INJECT1:
  db 8B 83 80 04 00 00

unregistersymbol(INJECT1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23918

Tutorial-i386.exe+238F6: 8D 55 DC                         - lea edx,[ebp-24]
Tutorial-i386.exe+238F9: 8D 4D F4                         - lea ecx,[ebp-0C]
Tutorial-i386.exe+238FC: E8 0F9BFEFF                      - call 0040D410
Tutorial-i386.exe+23901: E8 1AB6FEFF                      - call 0040EF20
Tutorial-i386.exe+23906: 50                               - push eax
Tutorial-i386.exe+23907: 85 C0                            - test eax,eax
Tutorial-i386.exe+23909: 75 65                            - jne 00423970
Tutorial-i386.exe+2390B: B8 05000000                      - mov eax,00000005
Tutorial-i386.exe+23910: E8 5BADFEFF                      - call 0040E670
Tutorial-i386.exe+23915: 8D 50 01                         - lea edx,[eax+01]
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+23918: 8B 83 80040000                   - mov eax,[ebx+00000480]
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+2391E: 29 D0                            - sub eax,edx
Tutorial-i386.exe+23920: 89 83 80040000                   - mov [ebx+00000480],eax
Tutorial-i386.exe+23926: 8D 55 D4                         - lea edx,[ebp-2C]
Tutorial-i386.exe+23929: E8 52680100                      - call 0043A180
Tutorial-i386.exe+2392E: 8B 55 D4                         - mov edx,[ebp-2C]
Tutorial-i386.exe+23931: 8B 83 6C040000                   - mov eax,[ebx+0000046C]
Tutorial-i386.exe+23937: E8 D4DA0600                      - call 00491410
Tutorial-i386.exe+2393C: 83 BB 80040000 00                - cmp dword ptr [ebx+00000480],00
Tutorial-i386.exe+23943: 7D 2B                            - jnl 00423970
Tutorial-i386.exe+23945: A1 C4F15400                      - mov eax,[0054F1C4]
}

 

Value не работает:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT2,Tutorial-i386.exe+23AC3,81 BB 80 04 00 00 E8 03 00 00)
alloc(newmem,$1000,Tutorial-i386.exe+23AC3)
label(code)
label(return)
registersymbol(INJECT2)

newmem:

code:
                              // Вот одна пустая строка
  cmp [ebx+00000480],000003E8
  jmp return

INJECT2:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
INJECT2:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(INJECT2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23AC3

Tutorial-i386.exe+23AB1: E8 0A9DFEFF                      - call 0040D7C0
Tutorial-i386.exe+23AB6: 5E                               - pop esi
Tutorial-i386.exe+23AB7: 5B                               - pop ebx
Tutorial-i386.exe+23AB8: C9                               - leave 
Tutorial-i386.exe+23AB9: C3                               - ret 
Tutorial-i386.exe+23ABA: 00 00                            - add [eax],al
Tutorial-i386.exe+23ABC: 00 00                            - add [eax],al
Tutorial-i386.exe+23ABE: 00 00                            - add [eax],al
Tutorial-i386.exe+23AC0: 53                               - push ebx
Tutorial-i386.exe+23AC1: 89 C3                            - mov ebx,eax
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+23AC3: 81 BB 80040000 E8030000          - cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+23ACD: 75 2C                            - jne 00423AFB
Tutorial-i386.exe+23ACF: 8B 83 68040000                   - mov eax,[ebx+00000468]
Tutorial-i386.exe+23AD5: B2 01                            - mov dl,01
Tutorial-i386.exe+23AD7: 8B 8B 68040000                   - mov ecx,[ebx+00000468]
Tutorial-i386.exe+23ADD: 8B 09                            - mov ecx,[ecx]
Tutorial-i386.exe+23ADF: FF 91 20020000                   - call dword ptr [ecx+00000220]
Tutorial-i386.exe+23AE5: 8B 83 78040000                   - mov eax,[ebx+00000478]
Tutorial-i386.exe+23AEB: B2 00                            - mov dl,00
Tutorial-i386.exe+23AED: 8B 8B 78040000                   - mov ecx,[ebx+00000478]
Tutorial-i386.exe+23AF3: 8B 09                            - mov ecx,[ecx]
}

 

Если просто во всех Template сместить

//Это сейчас:
newMem:
->>cheatCode
//Сделать так:
newMem: ->>cheatCode

, то последний скрипт будет без пустой строки, но глюканут первые два. А в коде я не нашёл место, где это можно поправить.

Так что @MasterGH посмотри и это тоже пожалуйста. 

3.04. Отображение в логах в скриптах адресов в таком виде:

Скрытый текст

// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+23ACD: 75 2C                          -  jne Tutorial-i386.exe+23AFB   // в СЕ

// а не в таком:

// ---------- INJECTING HERE -----------
Tutorial-i386.exe+23ACD: 75 2C                            - jne 00423AFB                   // Плагин

 

 

@MasterGHЕсли поправить все недочёты в плагине то версию смело можно поменять на 2.4.3

 

4. Плагин тестировался на СЕ версии 6.5 и только на Туториалах СЕ 32 и 64 бита. Поэтому просьба - по возможности потестить и писать сюда,   

 

5. Видео-инструкция для новичков:

 

6, Примеры скриптов:

CE:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2017-04-30
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT0,Tutorial-i386.exe,75 2C 8B 83 68 04 00 00) // should be unique
registersymbol(INJECT0)
INJECT0:
  db 90 90

[DISABLE]
INJECT0:
  db 75 2C 8B 83 68 04 00 00

unregistersymbol(INJECT0)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+23ACD

"Tutorial-i386.exe"+23AB6: 5E                             -  pop esi
"Tutorial-i386.exe"+23AB7: 5B                             -  pop ebx
"Tutorial-i386.exe"+23AB8: C9                             -  leave 
"Tutorial-i386.exe"+23AB9: C3                             -  ret 
"Tutorial-i386.exe"+23ABA: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23ABC: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23ABE: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23AC0: 53                             -  push ebx
"Tutorial-i386.exe"+23AC1: 89 C3                          -  mov ebx,eax
"Tutorial-i386.exe"+23AC3: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+23ACD: 75 2C                          -  jne Tutorial-i386.exe+23AFB
"Tutorial-i386.exe"+23ACF: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+23AD5: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+23AD7: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+23ADD: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+23ADF: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+23AE5: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+23AEB: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+23AED: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+23AF3: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+23AF5: FF 91 D8 00 00 00              -  call dword ptr [ecx+000000D8]
"Tutorial-i386.exe"+23AFB: 5B                             -  pop ebx
}

 

Плагин  2.4.0.G66.1:

Туториал 32:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT1,Tutorial-i386.exe+23ACD,75xx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxxxxxx00xx00xxxx89)
registersymbol(INJECT1)

INJECT1:
  nop
  nop

[DISABLE]
INJECT1:
  db 75 2C

unregistersymbol(INJECT1)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+23ACD

Tutorial-i386.exe+23AB6: 5E                               - pop esi
Tutorial-i386.exe+23AB7: 5B                               - pop ebx
Tutorial-i386.exe+23AB8: C9                               - leave 
Tutorial-i386.exe+23AB9: C3                               - ret 
Tutorial-i386.exe+23ABA: 00 00                            - add [eax],al
Tutorial-i386.exe+23ABC: 00 00                            - add [eax],al
Tutorial-i386.exe+23ABE: 00 00                            - add [eax],al
Tutorial-i386.exe+23AC0: 53                               - push ebx
Tutorial-i386.exe+23AC1: 89 C3                            - mov ebx,eax
Tutorial-i386.exe+23AC3: 81 BB 80040000 E8030000          - cmp [ebx+00000480],000003E8
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+23ACD: 75 2C                            - jne 00423AFB
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+23ACF: 8B 83 68040000                   - mov eax,[ebx+00000468]
Tutorial-i386.exe+23AD5: B2 01                            - mov dl,01
Tutorial-i386.exe+23AD7: 8B 8B 68040000                   - mov ecx,[ebx+00000468]
Tutorial-i386.exe+23ADD: 8B 09                            - mov ecx,[ecx]
Tutorial-i386.exe+23ADF: FF 91 20020000                   - call dword ptr [ecx+00000220]
Tutorial-i386.exe+23AE5: 8B 83 78040000                   - mov eax,[ebx+00000478]
Tutorial-i386.exe+23AEB: B2 00                            - mov dl,00
Tutorial-i386.exe+23AED: 8B 8B 78040000                   - mov ecx,[ebx+00000478]
Tutorial-i386.exe+23AF3: 8B 09                            - mov ecx,[ecx]
Tutorial-i386.exe+23AF5: FF 91 D8000000                   - call dword ptr [ecx+000000D8]
}

 

Туториал 64:

Скрытый текст

{ Game   : Tutorial-x86_64.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
aobscanmodule(INJECT2,Tutorial-x86_64.exe+2AAA3,75xx48xxxxxxxxxxxxbaxxxxxxxx48xxxxxxxxxxxx48xxxxffxxxxxxxxxx48xxxxxxxxxxxxbaxxxxxxxx48xxxxxxxxxxxx48xxxxffxxxxxxxxxxxx48xxxxxxxxxxxx00xx00xx00xx00xx00xx00xxxx8dxxxxxx48xxxx48xxxx48)
registersymbol(INJECT2)

INJECT2:
  nop
  nop

[DISABLE]
INJECT2:
  db 75 38

unregistersymbol(INJECT2)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-x86_64.exe+2AAA3

Tutorial-x86_64.exe+2AA84: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA86: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA88: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA8A: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA8C: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA8E: 00 00                            - add [rax],al
Tutorial-x86_64.exe+2AA90: 53                               - push rbx
Tutorial-x86_64.exe+2AA91: 48 8D 64 24 E0                   - lea rsp,[rsp-20]
Tutorial-x86_64.exe+2AA96: 48 89 CB                         - mov rbx,rcx
Tutorial-x86_64.exe+2AA99: 81 BB 90070000 E8030000          - cmp [rbx+00000790],000003E8
// ---------- INJECTING HERE -----------
Tutorial-x86_64.exe+2AAA3: 75 38                            - jne 10002AADD
// ---------- DONE INJECTING  ----------
Tutorial-x86_64.exe+2AAA5: 48 8B 8B 60070000                - mov rcx,[rbx+00000760]
Tutorial-x86_64.exe+2AAAC: BA 01000000                      - mov edx,00000001
Tutorial-x86_64.exe+2AAB1: 48 8B 83 60070000                - mov rax,[rbx+00000760]
Tutorial-x86_64.exe+2AAB8: 48 8B 00                         - mov rax,[rax]
Tutorial-x86_64.exe+2AABB: FF 90 40040000                   - call qword ptr [rax+00000440]
Tutorial-x86_64.exe+2AAC1: 48 8B 8B 80070000                - mov rcx,[rbx+00000780]
Tutorial-x86_64.exe+2AAC8: BA 00000000                      - mov edx,00000000
Tutorial-x86_64.exe+2AACD: 48 8B 83 80070000                - mov rax,[rbx+00000780]
Tutorial-x86_64.exe+2AAD4: 48 8B 00                         - mov rax,[rax]
Tutorial-x86_64.exe+2AAD7: FF 90 B0010000                   - call qword ptr [rax+000001B0]
}

 

7. Сам плагин:                 

aamaker V240_G66-1.lua

Ссылка на комментарий
Поделиться на другие сайты

1 hour ago, Garik66 said:

2.09. Исправлен баг:

 

Гм... Как я понимаю, он не столько исправлен, сколько "закопан". Т.е. просто по умолчанию без галки в скрипт теперь вставляются не опкоды, а байты, а с опкодами как было неверное восстановление инструкций с нулевыим офсетом, так и осталось?
Если не ошибаюсь, это ведь косяк самого СЕ, а не плагина, плагин лишь помог его явно обнаружить. Такие скрипты и на СЕ вообще без установленного плагина не будут корректно работать. Можно ведь и во встроенном шаблоне вручную вписать в [DISABLE] именно опкоды с нулями и СЕ их спокойно примет, не выдаст никаких предупреждений о некорректности скрипта и будет молча восстанавливать инструкции с ошибкой. Может имеет смысл всё-таки как-нибудь дать знать DB, там как раз сейчас беты тестируют?

Ссылка на комментарий
Поделиться на другие сайты

16 минут назад, Foxhound сказал:

это ведь косяк самого СЕ

Именно, сам CE так восстанавливает пропуская 00 байты.

 

16 минут назад, Foxhound сказал:

всё-таки как-нибудь дать знать DB

 

Это во всех версиях так, по этому и стандартные скрипты используют байты вместо опкодов, видимо ДБ знает об этом.

И вообще генерация байтами откладывает понемногу в мозгу опкоды и это может помочь в чтении Hex дампа и ориентации в коде.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, Foxhound сказал:

Гм... Как я понимаю, он не столько исправлен, сколько "закопан".

Ну почему же вот два скрипта про которые я пишу:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2017-04-30
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJECT,Tutorial-i386.exe,02 62 00 F0 02 62 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  add ah,[edx+00]
  lock add ah,[edx+00]
  jmp return

INJECT:
  jmp code
  nop
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 02 62 00 F0 02 62 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+1D0551

"Tutorial-i386.exe"+1D053A: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D053C: D8 02                 -  fadd dword ptr [edx]
"Tutorial-i386.exe"+1D053E: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D0540: DC 02                 -  fadd qword ptr [edx]
"Tutorial-i386.exe"+1D0542: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D0544: E0 02                 -  loopne Tutorial-i386.exe+1D0548
"Tutorial-i386.exe"+1D0546: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D0548: E4 02                 -  in al,02
"Tutorial-i386.exe"+1D054A: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D054C: E8 02 62 00 EC        -  call EC5D6753
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+1D0551: 02 62 00              -  add ah,[edx+00]
"Tutorial-i386.exe"+1D0554: F0 02 62 00           - lock  add ah,[edx+00]
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+1D0558: F4                    -  hlt 
"Tutorial-i386.exe"+1D0559: 02 62 00              -  add ah,[edx+00]
"Tutorial-i386.exe"+1D055C: F8                    -  clc 
"Tutorial-i386.exe"+1D055D: 02 62 00              -  add ah,[edx+00]
"Tutorial-i386.exe"+1D0560: FC                    -  cld 
"Tutorial-i386.exe"+1D0561: 02 62 00              -  add ah,[edx+00]
"Tutorial-i386.exe"+1D0564: 00 03                 -  add [ebx],al
"Tutorial-i386.exe"+1D0566: 62 00                 -  bound eax,[eax]
"Tutorial-i386.exe"+1D0568: 04 03                 -  add al,03
"Tutorial-i386.exe"+1D056A: 62 00                 -  bound eax,[eax]
}

 

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
alloc(newMem,$1000)
label(return)

newMem:
  
  add ah,[edx+00]
  lock add ah,[edx+00]
  jmp return

Tutorial-i386.exe+1D0551:
  jmp newMem
  nop
  nop
return:

[DISABLE]
Tutorial-i386.exe+1D0551:
  db 02 62 00 F0 02 62 00

dealloc(newMem)

{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+1D0551

Tutorial-i386.exe+1D053A: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D053C: D8 02                            - fadd dword ptr [edx]
Tutorial-i386.exe+1D053E: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0540: DC 02                            - fadd qword ptr [edx]
Tutorial-i386.exe+1D0542: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0544: E0 02                            - loopne 005D0548
Tutorial-i386.exe+1D0546: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0548: E4 02                            - in al,02
Tutorial-i386.exe+1D054A: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D054C: E8 026200EC                      - call EC5D6753
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+1D0551: 02 62 00                         - add ah,[edx+00]
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+1D0554: F0 02 62 00                      - lock add ah,[edx+00]
Tutorial-i386.exe+1D0558: F4                               - hlt 
Tutorial-i386.exe+1D0559: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D055C: F8                               - clc 
Tutorial-i386.exe+1D055D: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D0560: FC                               - cld 
Tutorial-i386.exe+1D0561: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D0564: 00 03                            - add [ebx],al
Tutorial-i386.exe+1D0566: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0568: 04 03                            - add al,03
}

 

Оба корректно включают и выключают скрипты. Код Туториала не портится

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, partoftheworlD сказал:

видимо ДБ знает об этом.

Думаю да. Это было сделать проще, чем перелопачивать весь , разросшийся код СЕ

Ссылка на комментарий
Поделиться на другие сайты

3 minutes ago, partoftheworlD said:

И вообще генерация байтами откладывает понемногу в мозгу опкоды и это может помочь в чтении Hex дампа и ориентации в коде.

 

Для профильного специалиста - да, согласен. Но для новичка, типа меня, весьма далёкого от программирования, это просто малопонятный набор цифр, знание которого вряд ли пригодится в будущем.

Кстати, случайно не подскажешь какую-нибудь небольшую программку по конвертированию этих самых байт в опкод и обратно? Может калькулятор какой. Ну или способ для начинающих, как это быстро сделать. Не в онлайн-конвертере, естественно.

 

 

2 minutes ago, Garik66 said:

Ну почему же вот два скрипта про которые я пишу

 

Это всё понятно, речь о том, что при вставке опкодов ошибка как была, так и осталась, а галку-то кликнуть несложно. Ну вот представь, скачивает плагин какой-нибудь малограмотный Foxhound и начинает с его помощью генерить скрипты. Посмотрел, что делает галка. В одном положении - какие-то цифры, а в другом - более-менее понятные инструкции. Потыкал - вроде и то и то работает. И, естественно, ставит галку на опкоды, как более понятную для него запись. При том совершенно правильно и логично поступает, ведь он понятия не имеет о возможной ошибке на нулях - никакой информации, никаких больших красных предупреждений с восклицательными знаками об этом нет. Я сужу даже по себе - мне гораздо удобнее и нагляднее видеть в [DISABLE] опкоды, чем ряд цифр, и до сего дня я именно ими и пользовался, причём если бы для этого требовалось нажимать каждый раз галку - нажимал бы. Т.е., фактически, на пути возможной ошибки появилось одно-единственное маленькое препятствие - лишнее нажатие галки, поэтому я и сказал, что баг "закопан". Скорее даже "слегка присыпан". Понимаешь, о чём я?

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, Foxhound сказал:

галку-то кликнуть несложно.

Галку теперь кликать нет нужды, если у тебя версия плагина 2.4.0.G66,1.

Теперь по умолчанию байты. А, если нужны опкоды, то нажимай.

5 минут назад, Foxhound сказал:

Ну или способ для начинающих, как это быстро сделать

В своих видео неоднократно показывал способ:

Ладно сейчас запишу короткое видео и выложу сюда. Писать долго.

Ссылка на комментарий
Поделиться на другие сайты

57 minutes ago, Garik66 said:

сейчас запишу короткое видео и выложу сюда.

 

Посмотрел, спасибо.
Хорошо, но меня интересует вот какой случай: допустим, я где-то скачал готовый скрипт, где в [DISABLE] последовательность байт, иногда довольно длинная. Как мне узнать, какому коду она соответствует? Игры, под которую написан данный скрипт, у меня нет, ничего подключить и активировать я не могу, оригинальный код синим цветом внизу скрипта не приведён. Такое часто бывает. Что делать в этом случае, как конвертировать?

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Foxhound сказал:

Что делать в этом случае, как конвертировать?

Не нужно конвертировать, а перейти в отладчике (редакторе памяти) на адрес интересующей тебя инструкции.

Либо по адресу инъекции, который в логах, либо найдя адрес (если нет логов, либо. если адрес инструкции меняется в игре) по сигнатуре с помощью Сканера сигнатур (как это сделать у меня тоже было во многих видео).

И смотреть в отладчике:

там 4 столбца Адрес Байты Инструкции и Комментарии.

Вот в Байтах будут байты  твоей инструкции, а в Инструкциях, соответствующие опкода.

 

Также, уважающие код хакеры, не ломают игровой код и поэтому он скорее всего будет в самом скрипте в   [ENABLE] сразу же за code:

Скрытый текст

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 04-30-17
  Author : [open aamaker.lua and pastle Author]
  Version CE: 6.5  Make by aamaker Lua plagin Version 2.4.0.G66.1 :)
  [EN] Technical support: http://forum.cheatengine.org/viewtopic.php?p=5645967
  [RU] Техническая поддержка: https://forum.gamehacklab.ru/index.php?/topic/1415-plugin-aa-maker-создание-аа-скриптов
}

[ENABLE]
alloc(newMem,$1000)
label(return)

newMem:
  
  add ah,[edx+00]                // Соотвествуют 
  lock add ah,[edx+00]           // этим инструкциям
  jmp return

Tutorial-i386.exe+1D0551:
  jmp newMem
  nop
  nop
return:

[DISABLE]
Tutorial-i386.exe+1D0551:
  db 02 62 00 F0 02 62 00        // Вот эти байты

dealloc(newMem)
                                 // И ещё они в логах приведены:
{
// ORIGINAL CODE - INJECTION POINT: Tutorial-i386.exe+1D0551

Tutorial-i386.exe+1D053A: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D053C: D8 02                            - fadd dword ptr [edx]
Tutorial-i386.exe+1D053E: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0540: DC 02                            - fadd qword ptr [edx]
Tutorial-i386.exe+1D0542: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0544: E0 02                            - loopne 005D0548
Tutorial-i386.exe+1D0546: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0548: E4 02                            - in al,02
Tutorial-i386.exe+1D054A: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D054C: E8 026200EC                      - call EC5D6753
// ---------- INJECTING HERE -----------
Tutorial-i386.exe+1D0551: 02 62 00         //1                - add ah,[edx+00]        // -1
// ---------- DONE INJECTING  ----------
Tutorial-i386.exe+1D0554: F0 02 62 00      //2                - lock add ah,[edx+00]   // -2
Tutorial-i386.exe+1D0558: F4                               - hlt                   
Tutorial-i386.exe+1D0559: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D055C: F8                               - clc 
Tutorial-i386.exe+1D055D: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D0560: FC                               - cld 
Tutorial-i386.exe+1D0561: 02 62 00                         - add ah,[edx+00]
Tutorial-i386.exe+1D0564: 00 03                            - add [ebx],al
Tutorial-i386.exe+1D0566: 62 00                            - bound eax,[eax]
Tutorial-i386.exe+1D0568: 04 03                            - add al,03
}

 

 

Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, Foxhound сказал:

Игры, под которую написан данный скрипт, у меня нет,

ЗЫ: не заметил, сейчас и это опишу.

Хотя нет, это долго - быстрее видео записать, но уже завтра.

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Foxhound сказал:

Кстати, случайно не подскажешь какую-нибудь небольшую программку по конвертированию этих самых байт в опкод и обратно?

 

rasm2 входит в фреймворк radare2

 

D:\Tools\radare2-w32-1.4.0-git>rasm2.exe -a x86 -d -b32 6200D8026200DC026200E0026200E4026200
bound eax, qword [eax]
fadd dword [edx]
bound eax, qword [eax]
fadd qword [edx]
bound eax, qword [eax]
loopne 0xe
bound eax, qword [eax]
in al, 2
bound eax, qword [eax]

 

fyd6fzIAfUE.jpg

 

Список поддерживаемых процессоров

Скрытый текст

_dAe  8 16       6502        LGPL3   6502/NES/C64/Tamagotchi/T-1000 CPU
_dA_  8          8051        PD      8051 Intel CPU
_dA_  16 32      arc         GPL3    Argonaut RISC Core
a___  16 32 64   arm.as      LGPL3   as ARM Assembler (use ARM_AS environment)
adAe  16 32 64   arm         BSD     Capstone ARM disassembler
_dA_  16 32 64   arm.gnu     GPL3    Acorn RISC Machine CPU
_d__  16 32      arm.winedbg LGPL2   WineDBG's ARM disassembler
adAe  8 16       avr         GPL     AVR Atmel
adAe  16 32 64   bf          LGPL3   Brainfuck (by pancake, nibble) v4.0.0
_dA_  16         cr16        LGPL3   cr16 disassembly plugin
_dA_  32         cris        GPL3    Axis Communications 32-bit embedded processor
adA_  32 64      dalvik      LGPL3   AndroidVM Dalvik
ad__  16         dcpu16      PD      Mojang's DCPU-16
_dA_  32 64      ebc         LGPL3   EFI Bytecode
adAe  16         gb          LGPL3   GameBoy(TM) (z80-like)
_dAe  16         h8300       LGPL3   H8/300 disassembly plugin
_d__  32         hppa        GPL3    HP PA-RISC
_dAe             i4004       LGPL3   Intel 4004 microprocessor
_dA_  8          i8080       BSD     Intel 8080 CPU
adA_  32         java        Apache  Java bytecode
_d__  32         lanai       GPL3    LANAI
_d__  8          lh5801      LGPL3   SHARP LH5801 disassembler
_d__  32         lm32        BSD     disassembly plugin for Lattice Micro 32 ISA
_d__  16 32      m68k        BSD     Capstone M68K disassembler
_dA_  32         malbolge    LGPL3   Malbolge Ternary VM
_d__  16         mcs96       LGPL3   condrets car
adAe  16 32 64   mips        BSD     Capstone MIPS disassembler
adAe  32 64      mips.gnu    GPL3    MIPS CPU
_dA_  16         msp430      LGPL3   msp430 disassembly plugin
_dA_  32         nios2       GPL3    NIOS II Embedded Processor
_dAe  8          pic18c      LGPL3   pic18c disassembler
_dAe  32 64      ppc         BSD     Capstone PowerPC disassembler
_dA_  32 64      ppc.gnu     GPL3    PowerPC
_dA_  32 64      riscv       GPL     RISC-V
_dAe  32         rsp         LGPL3   Reality Signal Processor
_dA_  32         sh          GPL3    SuperH-4 CPU
_dA_  8 16       snes        LGPL3   SuperNES CPU
_dAe  32 64      sparc       BSD     Capstone SPARC disassembler
_dA_  32 64      sparc.gnu   GPL3    Scalable Processor Architecture
_d__  16         spc700      LGPL3   spc700, snes' sound-chip
_d__  32         sysz        BSD     SystemZ CPU disassembler
_dA_  32         tms320      LGPLv3  TMS320 DSP family
_d__  32         tricore     GPL3    Siemens TriCore CPU
_dAe  32         v810        LGPL3   v810 disassembly plugin
_d__  32         v850        LGPL3   v850 disassembly plugin
_dAe  8 32       vax         GPL     VAX
_d__  32         wasm        MIT     WebAssembly (by pancake) v0.1.0
_dA_  32         ws          LGPL3   Whitespace esotheric VM
a___  16 32 64   x86.as      LGPL3   Intel X86 GNU Assembler
_dAe  16 32 64   x86         BSD     Capstone X86 disassembler
a___  16 32 64   x86.nasm    LGPL3   X86 nasm assembler
a___  16 32 64   x86.nz      LGPL3   x86 handmade assembler
_dAe  16 32 64   x86.udis    BSD     udis86 x86-16,32,64
_dA_  16         xap         PD      XAP4 RISC (CSR)
_dA_  32         xcore       BSD     Capstone XCore disassembler
_dAe  32         xtensa      GPL3    XTensa CPU
adA_  8          z80         GPL     Zilog Z80

 

 

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, Foxhound сказал:

Как мне узнать, какому коду она соответствует? Игры, под которую написан данный скрипт, у меня нет, ничего подключить и активировать я не могу, оригинальный код синим цветом внизу скрипта не приведён.

 

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, Garik66 сказал:

Сам СЕ 6.5 на ней работает корректно, в Плагине работает только корректно "Injection"  при оригинальном code в байтах (как и в СЕ)

Мне так и не удалось её решить, хотя вижу код @MasterGH из v 2.4.2 (стр. с 480 по 549 + с 559 по 570) вставить в v 2.4.0:G66.1 (стр. с 515 по 579 + с 590 по 598), но по-видимому нужно ещё что-то. Немного пробовал ещё, рассуждения в этом сообщении. 

Это единственно что не перенесено из версии 2.4.2. в версию 2.4.0:G66.1

Также эта ошибка появляется (только что обнаружил) на моде Diablo The Hell v1 209

 

Вроде исправил.

 

Цитата

2.09. Исправлен баг: (про сдвиг кода с нопом)

Норм. add ah,[edx] и add ah,[edx + 00] отличаются по размеру на 1 байт, но лишний байт все равно  бы нопился при восстановлении. Даже если бы не исправляли, то не должно было приводить к ошибке.

 

Исправлено
3.01
3.02
3.03 Исправлена для cmp инструкции. Набор стал таким

PATTERN =
{
    ['inc']  = 'mov->>type[x],->>value',
    ['cmp']  = 'mov->>type[x],->>value\r\n->>originalCode',
    ['mov']  = 'mov->>type[x],->>value\r\n->>originalCode',
    ['fld']  = 'mov->>type[x],->>value\r\n->>originalCode',
    ['fstp'] = '->>originalCode\r\n'..'mov->>type[x],->>value'
}

На других инструкциям mov [x], value не будет и нужно этот набор заполнять ими. Cmp я добавил


Не исправлено:

3.04. Отображение в логах в скриптах адресов в таком виде. Тут проблемка с тем чтобы получить модуль плюс оффест, а не модуль + символьное имя + оффест.
Пример

print(getNameFromAddress('00439D10'))
--Получит Tutorial-i386.exe+39D10
--Но, если будет символьное имя, то мог бы вернуть что-то типа Tutorial-i386.exe+СТРОКА.СТРОКА + 39D10

 

Покак такой вариант

aamaker V240_G66-2.lua

 

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

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, MasterGH сказал:

Вроде исправил.

Теперь не один скрипт (В версии 3.2 по адресу Tutorial-i386.exe+1D0551) написать нельзя, LUA пишет

result == nil. Change "+X-C*W" 

  add ah,[edx+00]
  lock add ah,[edx+00] 
@A8 
  
  add ah,[edx+00]
  lock add ah,[edx+00] 
@A9 

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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