|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
LtO Advanced Cheater Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Wed Feb 21, 2018 2:25 pm Post subject: Want to make a little script (flash/pcode inside) |
|
|
Hi, I want to make a little script for a game that changes your blocks in the game. I think it's pretty easy since there is an item in the game and when you get it, it does this function... I'm not good yet at finding the right values and integers etc, but I realised I could also make a little script in assembly I guess. So here is the code of what I want to change in the game (whenever I want), and what it does:::
Decompiled swf: Code: | package TetrionShell,scripts,live
{
import TetrionCore,Components,TetPiece;
import TetrionCore,Components,TetStandardPieces;
import TetrionShell,Tetrion;
public class LiveItemAllIPieces extends LiveItem
{
private var mNumPieces:int;
public function LiveItemAllIPieces(param1:int, param2:Tetrion)
{
this,mIsVisibleToAll = true;
this,mDuration = 10000;
this,mActiveType = LiveItem,kActiveTypeDuration;
super(param1,param2);
this,mNumPieces = 5;
this,mItemType = LiveItem,kItemTypePositive;
}
override public function Update(param1:Number) : void
{
var _loc2_:* = null;
if(!this,mIsActive)
{
this,Remove();
}
else if(this,mTetrion,GetPlayerAt(this,mTargetId,0),GetPieceQueue(),Peek(5),GetPieceTypeID() != TetStandardPieces,k_TetStandardPieces_PieceID_I)
{
_loc2_ = TetStandardPieces,CreateNewPiece(TetStandardPieces,k_TetStandardPieces_PieceID_I,true);
_loc2_,SetAllMinosIsSticky(false,false);
this,mTetrion,GetPlayerAt(this,mTargetId,0),GetPieceQueue(),AddPieceAtIndex(_loc2_,5);
}
}
override public function Remove() : void
{
var _loc1_:int = 0;
while(_loc1_ < 6)
{
if(this,mTetrion,GetPlayerAt(this,mTargetId,0),GetPieceQueue(),Peek(0),GetPieceTypeID() == TetStandardPieces,k_TetStandardPieces_PieceID_I)
{
this,mTetrion,GetPlayerAt(this,mTargetId,0),GetPieceQueue(),Pop(true);
}
_loc1_++;
}
}
override public function Apply(param1:int, param2:int, param3:String) : void
{
var _loc4_:* = null;
super,Apply(param1,param2,param3);
this,mTetrion,PlayLibrarySFX("FX_I_PIECE");
var _loc5_:int = 0;
while(_loc5_ < 6)
{
_loc4_ = TetStandardPieces,CreateNewPiece(TetStandardPieces,k_TetStandardPieces_PieceID_I,true);
_loc4_,SetAllMinosIsSticky(false,false);
this,mTetrion,GetPlayerAt(this,mTargetId,0),GetPieceQueue(),AddPieceAtIndex(_loc4_,_loc5_);
_loc5_++;
}
}
}
}
|
And Pcode: Code: | trait slot Qname(PrivateNamespace("*","474"),"mNumPieces")
slotid 0
type Qname(PackageNamespace(""),"int")
value Undefined
end ; trait
method
name null
param Qname(PackageNamespace(""),"int")
param Qname(PackageNamespace("TetrionShell"),"Tetrion")
returns null
body
maxstack 3
localcount 3
initscopedepth 5
maxscopedepth 6
code
; d0
getlocal_0
; 30
pushscope
; d0
getlocal_0
; 26
pushtrue
; 68 83 26
initproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mIsVisibleToAll")
; d0
getlocal_0
; 25 90 4e
pushshort 10000
; 68 8b 08
initproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mDuration")
; d0
getlocal_0
; 60 88 01
getlex Qname(PackageNamespace("TetrionShell,scripts,live"),"LiveItem")
; 66 fa 0d
getproperty Qname(PackageNamespace(""),"kActiveTypeDuration")
; 68 80 11
initproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mActiveType")
; d0
getlocal_0
; d1
getlocal_1
; d2
getlocal_2
; 49 02
constructsuper 2
; d0
getlocal_0
; 24 05
pushbyte 5
; 68 f2 4d
initproperty Qname(PrivateNamespace("*","474"),"mNumPieces")
; d0
getlocal_0
; 60 88 01
getlex Qname(PackageNamespace("TetrionShell,scripts,live"),"LiveItem")
; 66 dd 0b
getproperty Qname(PackageNamespace(""),"kItemTypePositive")
; 68 f2 06
initproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mItemType")
; 47
returnvoid
end ; code
end ; body
end ; method
trait method Qname(PackageNamespace(""),"Update")
flag OVERRIDE
dispid 0
method
name null
param Qname(PackageNamespace(""),"Number")
returns Qname(PackageNamespace(""),"void")
body
maxstack 3
localcount 3
initscopedepth 5
maxscopedepth 6
code
; d0
getlocal_0
; 30
pushscope
; 20
pushnull
; 80 25
coerce Qname(PackageNamespace("TetrionCore,Components"),"TetPiece")
; d6
setlocal_2
; d0
getlocal_0
; 66 a9 09
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mIsActive")
; 11 09 00 00
iftrue ofs0017
; d0
getlocal_0
; 4f a7 03 00
callpropvoid Qname(PackageNamespace(""),"Remove") 0
; 10 52 00 00
jump ofs0069
; d0
ofs0017:getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; d0
getlocal_0
; 66 bc 02
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTargetId")
; 24 00
pushbyte 0
; 46 5f 02
callproperty Qname(PackageNamespace(""),"GetPlayerAt") 2
; 46 a9 05 00
callproperty Qname(PackageNamespace(""),"GetPieceQueue") 0
; 24 05
pushbyte 5
; 46 ea 22 01
callproperty Qname(PackageNamespace(""),"Peek") 1
; 46 f5 02 00
callproperty Qname(PackageNamespace(""),"GetPieceTypeID") 0
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 66 d9 06
getproperty Qname(PackageNamespace(""),"k_TetStandardPieces_PieceID_I")
; 13 2e 00 00
ifeq ofs0069
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 66 d9 06
getproperty Qname(PackageNamespace(""),"k_TetStandardPieces_PieceID_I")
; 26
pushtrue
; 46 f1 01 02
callproperty Qname(PackageNamespace(""),"CreateNewPiece") 2
; 80 25
coerce Qname(PackageNamespace("TetrionCore,Components"),"TetPiece")
; d6
setlocal_2
; d2
getlocal_2
; 27
pushfalse
; 27
pushfalse
; 4f 87 03 02
callpropvoid Qname(PackageNamespace(""),"SetAllMinosIsSticky") 2
; d0
getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; d0
getlocal_0
; 66 bc 02
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTargetId")
; 24 00
pushbyte 0
; 46 5f 02
callproperty Qname(PackageNamespace(""),"GetPlayerAt") 2
; 46 a9 05 00
callproperty Qname(PackageNamespace(""),"GetPieceQueue") 0
; d2
getlocal_2
; 24 05
pushbyte 5
; 4f bb 28 02
callpropvoid Qname(PackageNamespace(""),"AddPieceAtIndex") 2
; 47
ofs0069:returnvoid
end ; code
end ; body
end ; method
end ; trait
trait method Qname(PackageNamespace(""),"Remove")
flag OVERRIDE
dispid 0
method
name null
returns Qname(PackageNamespace(""),"void")
body
maxstack 3
localcount 2
initscopedepth 5
maxscopedepth 6
code
; d0
getlocal_0
; 30
pushscope
; 24 00
pushbyte 0
; d5
setlocal_1
; 10 3d 00 00
jump ofs0046
; 09
ofs0009:label
; d0
getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; d0
getlocal_0
; 66 bc 02
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTargetId")
; 24 00
pushbyte 0
; 46 5f 02
callproperty Qname(PackageNamespace(""),"GetPlayerAt") 2
; 46 a9 05 00
callproperty Qname(PackageNamespace(""),"GetPieceQueue") 0
; 24 00
pushbyte 0
; 46 ea 22 01
callproperty Qname(PackageNamespace(""),"Peek") 1
; 46 f5 02 00
callproperty Qname(PackageNamespace(""),"GetPieceTypeID") 0
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 66 d9 06
getproperty Qname(PackageNamespace(""),"k_TetStandardPieces_PieceID_I")
; 14 16 00 00
ifne ofs0044
; d0
getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; d0
getlocal_0
; 66 bc 02
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTargetId")
; 24 00
pushbyte 0
; 46 5f 02
callproperty Qname(PackageNamespace(""),"GetPlayerAt") 2
; 46 a9 05 00
callproperty Qname(PackageNamespace(""),"GetPieceQueue") 0
; 26
pushtrue
; 4f 8c 16 01
callpropvoid Qname(PackageNamespace(""),"Pop") 1
; c2 01
ofs0044:inclocal_i 1
; d1
ofs0046:getlocal_1
; 24 06
pushbyte 6
; 15 bc ff ff
iflt ofs0009
; 47
returnvoid
end ; code
end ; body
end ; method
end ; trait
trait method Qname(PackageNamespace(""),"Apply")
flag OVERRIDE
dispid 0
method
name null
param Qname(PackageNamespace(""),"int")
param Qname(PackageNamespace(""),"int")
param Qname(PackageNamespace(""),"String")
returns Qname(PackageNamespace(""),"void")
body
maxstack 4
localcount 6
initscopedepth 5
maxscopedepth 6
code
; d0
getlocal_0
; 30
pushscope
; 20
pushnull
; 80 25
coerce Qname(PackageNamespace("TetrionCore,Components"),"TetPiece")
; 63 04
setlocal 4
; d0
getlocal_0
; d1
getlocal_1
; d2
getlocal_2
; d3
getlocal_3
; 4e 90 01 03
callsupervoid Qname(PackageNamespace(""),"Apply") 3
; d0
getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; 2c ca 2a
pushstring "FX_I_PIECE"
; 4f 1c 01
callpropvoid Qname(PackageNamespace(""),"PlayLibrarySFX") 1
; 24 00
pushbyte 0
; 63 05
setlocal 5
; 10 33 00 00
jump ofs0054
; 09
ofs0021:label
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 60 49
getlex Qname(PackageNamespace("TetrionCore,Components"),"TetStandardPieces")
; 66 d9 06
getproperty Qname(PackageNamespace(""),"k_TetStandardPieces_PieceID_I")
; 26
pushtrue
; 46 f1 01 02
callproperty Qname(PackageNamespace(""),"CreateNewPiece") 2
; 80 25
coerce Qname(PackageNamespace("TetrionCore,Components"),"TetPiece")
; 2a
dup
; 63 04
setlocal 4
; 27
pushfalse
; 27
pushfalse
; 4f 87 03 02
callpropvoid Qname(PackageNamespace(""),"SetAllMinosIsSticky") 2
; d0
getlocal_0
; 66 8e 01
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTetrion")
; d0
getlocal_0
; 66 bc 02
getproperty Qname(ProtectedNamespace("TetrionShell,scripts,live:LiveItem"),"mTargetId")
; 24 00
pushbyte 0
; 46 5f 02
callproperty Qname(PackageNamespace(""),"GetPlayerAt") 2
; 46 a9 05 00
callproperty Qname(PackageNamespace(""),"GetPieceQueue") 0
; 62 04
getlocal 4
; 62 05
getlocal 5
; 4f bb 28 02
callpropvoid Qname(PackageNamespace(""),"AddPieceAtIndex") 2
; c2 05
inclocal_i 5
; 62 05
ofs0054:getlocal 5
; 24 06
pushbyte 6
; 15 c5 ff ff
iflt ofs0021
; 47
returnvoid
end ; code
end ; body
end ; method
end ; trait
|
I'd be happy with some help I'm trying to learn but still very much a noob I'm afraid :p
Edit: I had to replace all the dots (.) with a comma in the code, cuz it says I cannot post urls...
|
|
Back to top |
|
|
AylinCE Grandmaster Cheater Supreme Reputation: 31
Joined: 16 Feb 2017 Posts: 1247
|
Posted: Wed Feb 21, 2018 4:10 pm Post subject: |
|
|
A long time, Cheat Engine Forums:
The game is cut and the related codes are off.
In such cases, publications are banned because they affect the site.
I recommend you watch Flash Decompler videos
and it will have to delete this post.
If you want a script file:
you want it without the game cutting code.
It's just a recommendation. The decision is again in management.
_________________
|
|
Back to top |
|
|
LtO Advanced Cheater Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Wed Feb 21, 2018 4:15 pm Post subject: |
|
|
Aylin wrote: | A long time, Cheat Engine Forums:
The game is cut and the related codes are off.
In such cases, publications are banned because they affect the site.
I recommend you watch Flash Decompler videos
and it will have to delete this post.
If you want a script file:
you want it without the game cutting code.
It's just a recommendation. The decision is again in management. |
Mmmm ok, but how does this affect the site? It would be hard to post that whole game here, lots and lots of code, and even harder for you guys to take a look at then :p I thought this code was actually enough to know what we should be looking for in the memory, value or address etc...
|
|
Back to top |
|
|
AylinCE Grandmaster Cheater Supreme Reputation: 31
Joined: 16 Feb 2017 Posts: 1247
|
Posted: Wed Feb 21, 2018 4:41 pm Post subject: |
|
|
LtO wrote: |
Mmmm ok, but how does this affect the site? It would be hard to post that whole game here, lots and lots of code, and even harder for you guys to take a look at then :p I thought this code was actually enough to know what we should be looking for in the memory, value or address etc... |
http://forum.cheatengine.org/viewtopic.php?t=216418
Any game cut, consists perception like this site directing.
This is not the place.
This site is not a hacker, delete this detection.
I offer you a free subsite.
http://fearlessrevolution.com/index.php
_________________
|
|
Back to top |
|
|
TheyCallMeTim13 Wiki Contributor Reputation: 50
Joined: 24 Feb 2017 Posts: 976 Location: Pluto
|
Posted: Wed Feb 21, 2018 4:51 pm Post subject: |
|
|
Aylin wrote: | LtO wrote: |
Mmmm ok, but how does this affect the site? It would be hard to post that whole game here, lots and lots of code, and even harder for you guys to take a look at then :p I thought this code was actually enough to know what we should be looking for in the memory, value or address etc... |
http://forum.cheatengine.org/viewtopic.php?t=216418
Any game cut, consists perception like this site directing.
This is not the place.
This site is not a hacker, delete this detection.
I offer you a free subsite.
http://fearlessrevolution.com/index.php |
I don't know much about flash/SWF, but what I understand is these run on the user's computer not a server. And I really don't understand what you're saying, and you may actually want to read the rules you posted as there is nothing in them that pertains to this. And Fearless uses CEF rules too.
_________________
|
|
Back to top |
|
|
AylinCE Grandmaster Cheater Supreme Reputation: 31
Joined: 16 Feb 2017 Posts: 1247
|
Posted: Wed Feb 21, 2018 5:14 pm Post subject: |
|
|
Maybe I misunderstand.
Because of these issues,
I remember that the site was temporarily closed.
But if the masters would argue otherwise,
I may have misunderstood the rules.
http://forum.cheatengine.org/viewtopic.php?t=603323
_________________
|
|
Back to top |
|
|
Corroder Grandmaster Cheater Supreme Reputation: 75
Joined: 10 Apr 2015 Posts: 1667
|
Posted: Wed Feb 21, 2018 7:14 pm Post subject: |
|
|
Example
part of SWF :
Code: |
-- This part to set player live items
-- Default live = 5 reference in 'this.mNumPieces = 5;'
public function LiveItemAllIPieces(param1:int, param2:Tetrion)
{
this,mIsVisibleToAll = true;
this,mDuration = 10000;
this,mActiveType = LiveItem,kActiveTypeDuration;
super(param1,param2);
this,mNumPieces = 5;
this,mItemType = LiveItem,kItemTypePositive;
} |
Part of Pcode :
Code: | getlocal_0
; 24 05
pushbyte 5
; 68 f2 4d
initproperty Qname(PrivateNamespace("*","474"),"mNumPieces") |
So, we get AOB for this 'live item' = 24 05 68 f2 4d
then if we want change this live item to 10, we use replacer AOB = 24 10 68 f2 4d
and so on.
Remember,SWF file constructed could be by sprites, shapes, images, frames, others and ActionScripts.
You can edit these kind elements using JPEXS Decompiler, soThinkSWF Decompiler, or other SWF Decomp app.
Just look first if SWF header is protected or not.
_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL |
|
Back to top |
|
|
LtO Advanced Cheater Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Thu Feb 22, 2018 7:28 am Post subject: |
|
|
Corroder wrote: | Example
part of SWF :
Code: |
-- This part to set player live items
-- Default live = 5 reference in 'this.mNumPieces = 5;'
public function LiveItemAllIPieces(param1:int, param2:Tetrion)
{
this,mIsVisibleToAll = true;
this,mDuration = 10000;
this,mActiveType = LiveItem,kActiveTypeDuration;
super(param1,param2);
this,mNumPieces = 5;
this,mItemType = LiveItem,kItemTypePositive;
} |
Part of Pcode :
Code: | getlocal_0
; 24 05
pushbyte 5
; 68 f2 4d
initproperty Qname(PrivateNamespace("*","474"),"mNumPieces") |
So, we get AOB for this 'live item' = 24 05 68 f2 4d
then if we want change this live item to 10, we use replacer AOB = 24 10 68 f2 4d
and so on.
Remember,SWF file constructed could be by sprites, shapes, images, frames, others and ActionScripts.
You can edit these kind elements using JPEXS Decompiler, soThinkSWF Decompiler, or other SWF Decomp app.
Just look first if SWF header is protected or not. |
Oh Thanks, yes I use jpexs decompiler, that's where I got this code, I used sothink before but this one works much better for me, also sothink crashed when i loaded this swf, probably cuz of an antidebugger...
As for this script maybe it's a bit unclear since it's just a very small part of that game's code, but I don't really need this 'liveitem', I only want to do what this 'liveitem'/function does, which is changing all your pieces in I pieces. This is a tetris game so you get different pieces in a random order, and I just want all the pieces that I get be the long, 4blocks tetris pieces, that have a particular id... And this item in the game (that you can receive if you are in the right room), creates that function for a limited time of 10seconds...
|
|
Back to top |
|
|
Corroder Grandmaster Cheater Supreme Reputation: 75
Joined: 10 Apr 2015 Posts: 1667
|
Posted: Thu Feb 22, 2018 8:01 am Post subject: |
|
|
It's too difficult if not see all SWF part or scripts.
But,
Quote: | .....which is changing all your pieces in I pieces |
We can change 'Images' on SWF file using JPEXS.
First you need find 'The block' which you want to use to change other 'blocks'
Find 'The Block' at image / shape section. Once you found it then save to your PC.
Next find again every 'blocks' you want to change. Change it with 'The block' as you have bee save on your PC. Save your SWF and try play the game.
Remember, 'The block' dimension must have same size with each 'blocks' you change. So, you need resize 'The block' dimension (width,height). Maybe using Microsoft Picture Manager.
_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL |
|
Back to top |
|
|
LtO Advanced Cheater Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Thu Feb 22, 2018 9:53 am Post subject: |
|
|
Corroder wrote: | It's too difficult if not see all SWF part or scripts.
But,
Quote: | .....which is changing all your pieces in I pieces |
We can change 'Images' on SWF file using JPEXS.
First you need find 'The block' which you want to use to change other 'blocks'
Find 'The Block' at image / shape section. Once you found it then save to your PC.
Next find again every 'blocks' you want to change. Change it with 'The block' as you have bee save on your PC. Save your SWF and try play the game.
Remember, 'The block' dimension must have same size with each 'blocks' you change. So, you need resize 'The block' dimension (width,height). Maybe using Microsoft Picture Manager. |
Yes, I guess you can change those things, but probably not in a live, multiplayer game you play online... Jpexs does have a feature to edit swf in the memory, but that didn't work. Also I'm sure it's not necessary to make it that complicated, it cannot be that hard to change all your pieces to that one piece... In fact it has been done in another game very similar to this one in code, maybe I should try to get it that way... Cuz I already made a hack for this game that also worked for the other one so Thanks for the help.
|
|
Back to top |
|
|
LtO Advanced Cheater Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Thu Feb 22, 2018 7:28 pm Post subject: |
|
|
I'm kinda stuck with this, and it frustrates me... I would even pay someone to help me :p
Any other tips or things I could try?
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|