Ams Plugin Maker [Trial to full patch]

Esta sección esta especialmente diseñada para todos aquellos usuarios que estés desarrollando plugins o aplicaciones y quieran ayuda para dichos plugins o aplicaciones.
Ams Plugin Maker - Trial to full patch

Hello fam. As i recived a storm of people asking about internals of APM and very courious about how its generating plugins with assambler i got some time by beigh sick with heavy fly and decided to bring some light on the matter, I wanted with this educate on tweaking your apps without the need of patching binaries or injecting code. This ended up on create this patch that includes all the sources, like always :drevil-1414025327:

First of all, APM trial, as found on the original website is a trial build. It doesn't contain the logic of "when you buy it" so theres no byte replacement magic patch possibility. It will generate plugins with a code that will only work on the pc that builds it as its saving the code in a local file on a temp path. The plugin will only have a reference of the path to this code.

To be less invasive possible i choosed to replace flac.exe (4789708.dat) and polink.exe (8685379.dat) with some executables i generated with c# .net2 command line apps. Those executables will show a MessageBox useful to debug files if build fails.

The objective of this files is to edit sources, then call the original executable, having at this point compiler events for compiling and linking stage of build.

APM is using assambler templates from a zip (9240294.dat pw: 004327892802480769698585903882293893984064072385782079435320) to build a object file with the plugin definitions with flat.exe (Flat assambler) and also extracting from the main executable some other precompiled objects that contain all the real logic of plugin (action.o for actions object.o, objecti.o and object.p for objects) then a makefile is generated to link those objects alongside with other needed objects with polink.exe, geneting the plugin.

I choosed to edit the ASM file before it is compiled by flac, and add a call to a custom generated library (roachlib.obj) that directly loads the code and redefine variables with the real content found on the file that contain the logic. For cleaning propourses, i set the values of sizes to 0 for default APM calls and renamed real sizes so i could still access them on the custom code, but core sees 0, so it wont load bullshit to lua engine.

Then, on the linker event MakeFile.make is edited to include a reference of custom library generated to load lua code and a patched object (action.o/object.o) is replaced that has changed a byte to not show the alert, executing the code anyways (thats why i set sizes to 0 before)

This will produce a final plugin with code inside and loading it on time.

Also a brief on (((encryption))) of these codes, its using a shitty xor swapping agains some random bytes called XMLX for some dumb reason. As i suspect, plugins generated with full version shoud be same as produced with this patch, so content and key to decrypt are just right after the other. Extracting and editing those codes inside the dll will be so easy, as its no real encryption. Also the tool "lua buffer dumper" ive posted should ejaculate all the code as its using loadbuffer, like all the AMS coding events.

void xor_crypt(char *data, int data_len, char* _v, int _vlen) {
for (int i = 0; i < data_len; i++) {
data ^= _v[i % _vlen];

Código: Seleccionar todo

AMS PLUGIN MAKER 1&#46;1&#46;0&#46;0 &#91;&#91;TRIAL TO FULL&#93;&#93; v1&#46;1 Patch by @Pabloko

	- Go to Data path (usually is C&#58;\Program Files (x86)\AmsPluginMaker\Data) 
	  and rename "Resource" folder to "Resource_original"
	- Unzip "Resource" path from this archive
	- Compile your previously locally tested plugins as usual&#46; &#58;)
	- Extra&#58; You can restore those folders as you want to avoid
	  debugging limitations on development stage&#46;
Known limitations / bugs&#58;
	- Transitions are not yet implemented
	- Code block limit is 1Mb (can be incremented)
	- Debugging won't work for plugin loading&#46; APC won't displays 
	  lua errors&#46;
	- A nasty fopen call still happening at loading&#46; Its left there
	  due architecture of path, keeping at minimum possible the core
	  object patching&#46;
Added transition support for full coverage:


Hidebb Message Hidden Description


Código: Seleccionar todo

	- V 1.0: Action plugin patching
	- V 1.1: Object plugin patching
	- V 1.2: Transition plugin patching
	- V 1.3: Fix on flac modded asm to allow hex bytes.
Thanks Pabloko, testing this crack is exciting. :penguin:

Whether now the object plugin is supported ? Because I could not compile object plugin with this version of crack.

Your efforts are admirable.
This version has full coverage of APM. Enjoy
No, it is not working correctly for make object plugins. Or maybe i can not correct understand.
I use Windows 8.1 x86 . For crack the software i use the text file help (README.txt).
from the main forum APM software , I download SimplePieChart and MetroCheckBox examples for testing.

But in the APM , when i click the Build button just show this text message "Vamo a compilalo".
At this moment, console show the progress of building plugin just "Preparing source code" and this situation does not change.
After i click OK button of top Message , in task manager -> Processes -> Background Processes , "4789708_flac" is still running. When I finish this process with End task, this message is displayed on the console. "Failed to compile a plugin module."

And I still could not make an object plugin without limitation. :crying:
look boy, as i tested it on 3 different machines and works perfectly with version (lastest)

If flac replacement isnt working, and in this case, hanguing, it could be obj isnt generated by some error. you may compile the .cs files by yourself and see whats going wrong. im suppousing that you have arabic characters on your windows username but .net should work fine with that... the better if you try it by yourself.

Those messages "vamo a compilalo" and "vamo a linkealo" stays there so you can go to the temp path and see whats going on. try to manually use flac.exe on the Temp.bin file, as flac replacement is on a infinite loop, that means Temp.obj isnt generated, so do some inventigation by yourself, because on my side works nicely.
thanks Pabloko , I do not deny your efforts but this problem is still remains for me. I still can not make a object plugin . :jackie-1417752827: Meanwhile I do not use the Arabic language.
can u zip the temp path so i could see whats going on for you? i need the Temp.bin file if its hanguing at compiling stage


Louise escribió:thanks Pabloko , I do not deny your efforts but this problem is still remains for me. I still can not make a object plugin . :jackie-1417752827: Meanwhile I do not use the Arabic language.
ok, i got what was wrong, i didnt follow the same encoding on asm file and for some raeson some bytes dont want to be compiled. i just let me a moment to replace how hex is populated on flac replacement and it will work. btw you can put this Temp.obj in your temp path and it will continue compiling

i will post a fix in a few minutes
put this as your 4789708.dat

tell me what happens
Thank you so much Pabloko , You're a genius.
With this file, I could make a object plugin without any problem. :celeryman-1418247558: :dancing:
so thanks dear pabloco
thanks Pabloko ;)
i updated the link for newer binaries
thanks Pabloko for your green patch :lol:

and also thanks rete for his good staff
Pabloko escribió:Added transition support for full coverage:


This message is hidden


Código: Seleccionar todo

	- V 1.0: Action plugin patching
	- V 1.1: Object plugin patching
	- V 1.2: Transition plugin patching
	- V 1.3: Fix on flac modded asm to allow hex bytes.