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

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


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

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

ты сам то не любитель записывать видео, хотя просил тебя несколько раз

А что ты хотел на видео? Я уже ничего не помню

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

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

А что ты хотел на видео? Я уже ничего не помню

Ну несколько раз спрашивал точно, но тоже точно не помню где и что.

Точно помню что, когда я решал проблему с телепортом для героев 6, ты сделал трейнми с дорожкой, его никто тогда не решил и ты выложил решение (сказав что с тобой не интересно, потому что сразу выкладываешь решение) описав его устно с картинками, там точно просил снять видео, но теперь почему-то в топике твоего трейми всего одно сообщение, хотя было много постов.

А сейчас искать на форуме тяжеловато из-за поехавших ссылок и спойлеров.

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

11 hours ago, Garik66 said:

Error in line 4 stealth editex (00000000,00000000,1)

This statement can not be compiled

Garik66-

You must have the Stealthedit plugin installed and enabled under settings. Here is the latest version:

 

 

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

  • 2 недели спустя...

сегодня обнаружил ошибку, при попытке написать скрипт для игры GUN. 

today encountered an error when trying to write a script for the game GUN.

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

8655818.jpg

 

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

Yes, some of these issues have been discussed with MasterGH and others over at Cheat Engine forum. There are still some existing bugs that need to be resolved that go beyond my current skill level. Unfortunately, some of the injection issues seem to appear at random.

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

10 час назад, METHOS сказал:

Yes, some of these issues have been discussed with MasterGH and others over at Cheat Engine forum.

всё равно спасибо.

Попрошу у MasterGH ссылку на топик на форуме Cheat Engine.

Nevertheless thank you.
I ask to have MasterGH link to a topic in the forum Cheat Engine.

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

The aamaker.lua file contains the support links for Cheat Engine and Game Hack Lab:

 

    [EN]
    Technical support :
       http://forum.cheatengine.org/viewtopic.php?p=5645967
                                
    [RU]
    Техническая поддержка:
       http://forum.gamehacklab.ru/topic/1415-plugin-aa-maker-sozdanie-aa-skriptov

 

The link for Game Hack Lab has since changed, however, so it needs to be updated.

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

11 минуту назад, METHOS сказал:

 Technical support :

Спасибо.

Почитаю, надеюсь что-нибудь пойму с помощью Гугл-переводчика.

Thank you.
I read hopefully understand something via Google translator.

 

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

Bugs:
 

1. We know nothing about AOBScanModule function. AOBScanModule is null.


 

2. Every time, over and over again compare (result == nil)

        result = AOBScanModule(str.._str, '+X-C-W')     

        if result == nil then
            print('   ' ..'Sorry. Not find signature with AOBScanModule! :(')
            break
        end
--------------------
      

alloc(someMem, 1000)
registersymbol(someMem)

someMem:
	mov edx,[eax+0C]	// go to point here and call Aobscan from aamaker
	mov [esi+08],edx
	pop esi
	ret
	mov cl,[esi+01]
	and cl,01
	or cl,1A

 

DebugCode 2
Every time, over and over again 
    1. print('some label')
    2. compare (result == nil)

 

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

function getFullSignature(startAddress, stopAddress)
	local addr = startAddress
	local stop = stopAddress
	local str = ''
	local _str = ''
	local count = -1
	local result = ''
	local num = 2
	local minNum = 4
	
	if testBytes then num = 8 minNum = 12 end
	str,addr = getBytesForAOB(addr, stop, stop)
	print(str)
	print(addr)
	
	print('n1')
	
	if #str > minNum then
		result = AOBScan(str, '+X-C-W')
		if result == nil then
			print('   ' ..'Sorry. Not find signature with AOBScan! :(')
		else
			count = strings_getCount(result)
			object_destroy(result)
		end
	end

	print('n2')
	
	while count ~= 1 do
		str = str.._str	
		print('g1')
		_str,addr = getBytesForAOB(addr, num)
		print('g2')
		
		result = AOBScan(str.._str, '+X-C-W')
		if result == nil then
			print('   ' ..'Sorry. Not find signature with AOBScan! :(')
			break
		end

		print('g3')
		count = strings_getCount(result)
		print('g4')
		object_destroy(result)	
		print('g5')		
	end
	print('n3')
	
		while count ~= 1 do
		print('m1')
		str = str.._str	
		print('m2')
		_str,addr = getBytesForAOB(addr, num)
		print('m3')
		result = AOBScanModule(str.._str, '+X-C-W')
		if result == nil then
			print('   ' ..'Sorry. Not find signature with AOBScanModule! :(')
			break
		end
		print('m4')
		count = strings_getCount(result)
		print('m5')
		object_destroy(result)			
	end
	print('n4')
		while count ~= 1 do
		str = str.._str	
		_str,addr = getBytesForAOB(addr, num)
		result = AOBScanModule(str.._str, '+X-C-W')
		if result == nil then
			print('   ' ..'Sorry. Not find signature with AOBScanModule! :(')
			break
		end
		count = strings_getCount(result)
		object_destroy(result)			
	end
	
	print('n5')
	
	if result == nil then
		return ''
	end
	
	local numOflast = #string.gsub(_str,'x','')/2
	
	while (numOflast > 1) do
		local nL = math.floor(numOflast/2)
		local nR = numOflast - nL
		local _strL, _strR
		if testBytes then
			_strL = string.match(_str,string.rep('x*%x+x+',nL))
			_strR = string.match(_str,string.rep('%x+x*',nR),#_strL)
		else
			_strL = string.sub(_str,1,2*nL)
			_strR = string.sub(_str,2*nL+1)
		end
		if strings_getCount(AOBScan(str.._strL, '+X-C-W')) == 1 then
			_str = _strL
			numOflast = nL
		else
			str = str.._strL
			_str = _strR
			numOflast = nR
		end		
	end 
	print('n6')
	str = str.._str
	if testBytes then str = string.lower(str)
	else str = str:gsub('(.)(.)', '%1%2 ') end
	str = str:gsub('x*%s*$','')
	return str
end


 


 

Log:

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


 

Цитата

    A1 
    A2 
    A3 
    8Bxxxx 
    2359299 
    n1 
    n2 
    g1 
    g2 
       Sorry. Not find signature with AOBScan! :(
    n3 
    m1 
    m2 
    m3 
    Error:C:\Program Files (x86)\Cheat Engine 6.5\autorun\aamaker.lua:396: attempt to call a nil value (global 'AOBScanModule')
    Error:[string "AOBScanModule("8B 50 0C 89 56 08 5E C3 8A 4E ..."]:1: attempt to call a nil value (global 'AOBScanModule')

 


Maybe I'll fix it soon enough

 

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

Thanks, MasterGH. Good work!

 

The AOBScanModule is beneficial because it allows you to scan ONLY the process that you specify. Because of this, the injection times are much, much faster than with AOBScan. Also, it allows for smaller AOB signatures, since all of the other modules are ignored. :D

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

11 час назад, MasterGH сказал:

Maybe I'll fix it soon enough

ждёмс исправления. ;)

Надеюсь, как поправишь, напишешь и по русски тоже.:D

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

Обновление: 2.4.2

Скачать: перейти

Репозиторий: перейти

 

Описание:

1. Исправления ошибок

2. Изменены шаблоны, старый aobscan удален.

3. Изменен формат директив в шаблоны. Добавлены новые директивы. Привожу вместе со старыми

{$AddressInjection}
{$OriginalCode}
{$CheatCode}
{$Nops}
{$ArrayOfbyte}
{$ProcessName}
{$Date}
{$PrintLog}

Посмотрите шаблон, разберетесь что  к чему.

4. Шаблоны теперь похожи на те, что генерит последняя версия CE

 

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

SimpleCodeTemplate = [[
{ Game   : {$ProcessName}
  Version: 1.0
  Date   : {$Date}
  Author : [edit aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin ;)
}

[ENABLE]

{$AddressInjection}:
{$CheatCode}

[DISABLE]

{$AddressInjection}:
{$OriginalCode}

{$PrintLog}
]]

AACodeTemplate = [[
{ Game   : {$ProcessName}
  Version: 1.0
  Date   : {$Date}
  Author : [open aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin ;)
}

[ENABLE]

alloc(newMem, 2048)
label(returnHere)

newMem:
{$CheatCode}
]]..stringSpaceBeforeinstruction..[[jmp returnHere

{$AddressInjection}:
]]..stringSpaceBeforeinstruction..[[jmp newMem
{$Nops}

returnHere:

[DISABLE]
	
{$AddressInjection}:
{$OriginalCode}

dealloc(newMem)

{$PrintLog}
]]

AOBSCANModuleCodeTemplate = [[
{ Game   : {$ProcessName}
  Version: 1.0
  Date   : {$Date}
  Author : [open aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin ;)
}

[ENABLE]

aobscanmodule(INJECT,{$AddressInjection},{$ArrayOfbyte})
alloc(newmem,$1000)

label(code)
label(return)
registersymbol(INJECT)

newmem:

code:
{$CheatCode}
]]..stringSpaceBeforeinstruction..[[jmp return

INJECT:
]]..stringSpaceBeforeinstruction..[[jmp code
{$Nops}

return:


[DISABLE]

INJECT:
{$OriginalCode}

unregistersymbol(INJECT)
dealloc(newmem)

{$PrintLog}
]]


AOBSCANModuleStealthCodeTemplate = [[
{ Game   : {$ProcessName}
  Version: 1.0
  Date   : {$Date}
  Author : [open aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin ;)
  
  Download stealthedit:
  http://www.cheatengine.org/temp/stealthedit2.4.zip
}

[ENABLE]

aobscanmodule(INJECT,{$AddressInjection},{$ArrayOfbyte})
alloc(newmem,2048,{$AddressInjection})
stealtheditex(stealth,INJECT,1)

label(originalcode)
label(returnhere)
label(stealthedit)

registersymbol(stealthedit)

//======================================================

newmem:

{$CheatCode}
originalcode:

]]..stringSpaceBeforeinstruction..[[jmp returnhere

//enable:
//db 0

//======================================================

stealth:
stealthedit:
]]..stringSpaceBeforeinstruction..[[jmp newmem
{$Nops}

returnhere:

[DISABLE]

stealthedit:
{$OriginalCode}

unregistersymbol(stealthedit)
dealloc(newmem)

{$PrintLog}
]]

 

 

5. Наконец штука, которая не работала - отступы перед дизассемблерным кодом под метками. stringSpaceBeforeinstruction . Поставьте столько отступов сколько хотим и код в шаблоне будет смещен на эти отступы. Другие отступы правятся в шаблонах.

 

Неудобно то, что свои шаблоны придется вручную вставлять в новые версии файла плагина.

 

Точно не знаю, все ли правильно работает ))

 

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

The AOB signatures are different when comparing Cheat Engine signatures and AAmaker signatures. Sometimes, the signatures are longer, and sometimes the signatures are shorter:


(example #1):

Spoiler

AAmaker:


aobscanmodule(aob_test,firefox.exe+257F,8B 41 04 89 46 04 8B C6 5E 5D C2 04 00 55 8B EC 56)

 

Cheat Engine:


aobscanmodule(INJECT,firefox.exe,8B 41 04 89 46 04)

 

 

 

 

(example #2):

Spoiler

AAmaker:


aobscanmodule(aob_test,firefox.exe+2544,8B 46 04 5F 3B 05 04)

 

Cheat Engine:


aobscanmodule(INJECT,firefox.exe,8B 46 04 5F 3B 05 04 B7 14 01)

 

 

Thanks!

 

EDIT :

By the way, I added the 'cheatname' feature back in to the templates and changed a few things, if anyone is interested (note: I removed the 'cheatcode' feature, but you can add that back in, if you like):


AOBScanModule:

Spoiler

 


//Target:  firefox.exe
//Author:  ++METHOS

[ENABLE]
aobscanmodule(aob_ammo,firefox.exe+250A,8B 4D 08 C6 46 0C 00 85 C9 75 66 57 E8 CB)
alloc(newmem_ammo,$1000)

label(originalcode_ammo)
label(return_ammo)

registersymbol(aob_ammo)

//==================================================

newmem_ammo:

originalcode_ammo:
mov ecx,[ebp+08]
mov byte ptr [esi+0C],00
jmp return_ammo

//==================================================

aob_ammo:
jmp newmem_ammo
nop
nop
return_ammo:

[DISABLE]
dealloc(newmem_ammo)
aob_ammo:
mov ecx,[ebp+08]
mov byte ptr [esi+0C],00

unregistersymbol(aob_ammo)

 

 

 


AOBScanModuleStealth:

Spoiler

 


//Target:  firefox.exe
//Author:  ++METHOS

[ENABLE]
aobscanmodule(aob_health,firefox.exe+250A,8B 4D 08 C6 46 0C 00 85 C9 75 66 57 E8 CB)
alloc(newmem_health,$1000)
stealtheditex(stealth_health,aob_health,1)

label(originalcode_health)
label(returnhere_health)
label(stealthedit_health)

registersymbol(stealthedit_health)

//======================================================

newmem_health:

originalcode_health:
mov ecx,[ebp+08]
mov byte ptr [esi+0C],00
jmp returnhere_health

//======================================================

stealth_health:
stealthedit_health:
jmp newmem_health
nop
nop
returnhere_health:

[DISABLE]
dealloc(newmem_health)
stealthedit_health:
mov ecx,[ebp+08]
mov byte ptr [esi+0C],00

unregistersymbol(stealthedit_health)

 

 

 

 

 

Download:

 

 

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

Same as above...signatures are different...but AAMaker also does not support inject+offset. If 'Testing bytes' is not selected, the AOB signature should be the same as Cheat Engine's signature, I think:

 

Cheat Engine:

Spoiler

 


aobscanmodule(INJECT,minesweeper.exe,F9 FF FF 48 8B C7 48 8B 5C 24 30)

//code

INJECT+06:
  jmp code
return:
registersymbol(INJECT)

 


AAMaker:

Spoiler



aobscanmodule(aob_test,minesweeper.exe+8F659,48 8B 5C 24 30 48 83 C4 20 5F C3 CC CC CC CC CC CC FF 25 18)

//code

aob_test:
jmp newmem_test
return_test:

 

 

Thanks!

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

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

AOB signature should be the same as Cheat Engine's signature

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

The main thing is to find the addresses of the signature statement. And if it looks like on the CE signature it is not important I think.

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

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

Описание:

Пока заметил одно неудобство в новой версии Плагина.

Вот допустим я создал новый скрипт:

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

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 02-22-16
  Author : [open aamaker.lua and pastle Author]

  This script does blah blah blah
  
  Make by aamaker Lua plagin ;)
}

[ENABLE]

aobscanmodule(INJECT,Tutorial-i386.exe+23920,89xxxxxxxxxx8dxxxxe8xxxxxxxx8bxxxx8bxxxxxxxxxxe8xxxxxxxx83)
alloc(newmem,$1000)

label(code)
label(return)
registersymbol(INJECT)

newmem:

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

INJECT:
	jmp code
	nop

return:


[DISABLE]

INJECT:
	db 89 83 80 04 00 00

unregistersymbol(INJECT)
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
}

 

Потом мне нужно создать ещё несколько, но везде название INJECT остаётся тем же, т.е. придётся вручную исправлять.

В версия до  2.4.2 какое название мы вставляли в окошко "CheatName" так и назывался адрес инъекции.

Я новую версию записал прямо поверх старой, теперь не могу посмотреть как это можно вернуть.

Что мне нужно вставить в строчку: 

aobscanmodule(INJECT,{$AddressInjection},{$ArrayOfbyte})

вместо INJECT.

 

 

default_offtopic.gif  Гугл-переводчик опять чудит: "open aamaker.lua and pastle Author" -> "открыт aamaker.lua и пестик Автор"

Пестик - круто!!! :D

 

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

17 minutes ago, Garik66 said:

METHOS

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

The main thing is to find the addresses of the signature statement. And if it looks like on the CE signature it is not important I think.

I agree. It's not important - usually. But it is important if / when the signature fails.

 

 

4 minutes ago, Garik66 said:

Потом мне нужно создать ещё несколько, но везде название INJECT остаётся тем же, т.е. придётся вручную исправлять.

В версия до  2.4.2 какое название мы вставляли в окошко "CheatName" так и назывался адрес инъекции.

Я новую версию записал прямо поверх старой, теперь не могу посмотреть как это можно вернуть.

 

See my previous post. I provided a new plugin that includes this feature. :D

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

13 минуты назад, METHOS сказал:

See my previous post. I provided a new plugin that includes this feature

Я обнаружил у Вас ошибки, и визуально, как выглядит скрипт у MasterGH мне больше понравилось.

Мне нужно из вашего плагина только строчка: 

aobscanmodule(INJECT,{$AddressInjection},{$ArrayOfbyte})

Да кстати сейчас её посмотрю.

Всё нашёл - {$cheatName} вместо INJECT.

 

I found you have mistakes, and visually looks like a script from MasterGH I liked.
I need out of your plug-in line only:
aobscanmodule (INJECT, {$ AddressInjection}, {$ ArrayOfbyte})
By the way I'll see her.
All found - {$ cheatName} instead INJECT.

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

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

Please see below. You can change it however you like.

Cпасибо!!!

Я уже сделал под себя.

Thank you!!!
I have already done for themselves.

Пример ( Example):

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

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 02-22-16
  Author : Garik66
  This script does blah blah blah
  
  Make by aamaker Lua plagin :)
  Link - http://forum.gamehacklab.ru/index.php?/files/file/329-ce-plugin-aa-maker/
}
[ENABLE]
aobscanmodule(TestPlagin_v_2_4_2,Tutorial-i386.exe+23920,89xxxxxxxxxx8dxxxxe8xxxxxxxx8bxxxx8bxxxxxxxxxxe8xxxxxxxx83)
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(TestPlagin_v_2_4_2)

newmem:

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

TestPlagin_v_2_4_2:
	jmp newmem
	nop
return:

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

unregistersymbol(TestPlagin_v_2_4_2)
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
}

 

 

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

вопрос:

вот участок кода в плагине:

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

if script ~= '' then
		script = string.gsub(script,"{$ArrayOfbyte}", strSignature)
		script = string.gsub(script,"{$AddressInjection}", getNameFromAddress(address))
		script = string.gsub(script,"{$CheatCode}", cheatCode)
		script = string.gsub(script,"{$NscriptCount}", scriptCount)
		script = string.gsub(script,"{$cheatName}", cheatName)
		
		if origCodeType == true then script = string.gsub(script,"{$OriginalCode}", originalBytes)
		else script = string.gsub(script,"{$OriginalCode}", originalCode) end
		
		if nops ~= '' then script = string.gsub(script,"{$Nops}", nops)
		else script = string.gsub(script,'\n?{$Nops}', '') end
	
		if cheatName ~= '' then
			scriptName = cheatName
			if string.find(cheatName, '^%d') ~= nil then
			cheatName = '_'..cheatName end
		else
			scriptName = 'New Script '..scriptCount
			cheatName = 'address'..scriptCount
			scriptCount = scriptCount + 1
		end
		
		script = string.gsub(script,'{$Date}', string.gsub(os.date('%x'),'/','-'))
		script = string.gsub(script,'{$ProcessName}', process)
		script = string.gsub(script,'{$PrintLog}', GetLog(getNameFromAddress(address), getNameFromAddress(length + address)))
		
		local newTableEntry = AddAARecord(script,scriptName)
		OpenAAEditor(newTableEntry)
	end

 

Но почему то вот эта строчка:

cheatName = 'address'..scriptCount

не срабатывает. Может я ошибаюсь и не там смотрю.

Объясню допустим я хочу написать скрипт, но не написал в окошке cheatName ничего, я хотел сделать, чтобы в этом случае по умолчанию было бы как в CE, т.е. подставлялось INJECT, но пока у меня не получилось этого сделать, а скрипт получается в этом случае у меня такой:

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

{ Game   : Tutorial-i386.exe
  Version: 1.0
  Date   : 02-22-16
  Author : Garik66
  This script does blah blah blah
  
  Make by aamaker Lua plagin :)
  Link - http://forum.gamehacklab.ru/index.php?/files/file/329-ce-plugin-aa-maker/
}
[ENABLE]
aobscanmodule(,Tutorial-i386.exe+23920,89xxxxxxxxxx8dxxxxe8xxxxxxxx8bxxxx8bxxxxxxxxxxe8xxxxxxxx83)
alloc(newmem,$1000)
label(code)
label(return)
registersymbol()

newmem:

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

:
	jmp newmem
	nop
return:

[DISABLE]
:
	db 89 83 80 04 00 00

unregistersymbol()
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
}

 

Помоги пожалуйста сделать.

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

Ребята, обновление будет на следующей недели, если не поменяются планы. Все пожелания учту.

По вопросам сейчас не могу помочь.

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

  • Garik66 закрепил тема
×
×
  • Создать...

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

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