I''m new to bytecode Hacking and I need some help.
-migrated-
Hi KGH,

I am new here obviously to learn bytecode hacking. The thing is that I never coded before and I have problems understanding the Intro to ByteCode Hacking Tutorial posted in the forum by pyhtag12.

I mean how do I know which thing to change to what? AS3 is kind of difficult and I don't know if I will succeed. :roll:  

What I have understood is that the code starts with { and ends with }. Between these two brackets there are lines of codes which seem to be useless when trying to find the code. For example below:

Code: [Select]
           private function calculateDamage() : Boolean
            {
    //d0
    _as3_getlocal <0>
    //30
    _as3_pushscope
    //28
    _as3_pushnan
    //d5
    _as3_setlocal <1>
    //24 00
    _as3_pushbyte 0
    //63 04
    _as3_setlocal <4>
    //27
    _as3_pushfalse
    //d6
    _as3_setlocal <2>
    //24 ff
    _as3_pushbyte -1
    //d7
    _as3_setlocal <3>
    //10 6c 00 00
    _as3_jump offset: 108
    //09
    _as3_label
    //24 ff
    _as3_pushbyte -1
    //63 04
    _as3_setlocal <4>
    //10 59 00 00
    _as3_jump offset: 89
    //09
    _as3_label
    //60 1b
    _as3_getlex com.wbwar.creeper::GameSpace
    //66 f9 0d
    _as3_getproperty instance
    //66 b6 01
    _as3_getproperty glop
    //66 99 06
    _as3_getproperty data
    //60 8a 03
    _as3_getlex gameSpaceX
    //62 04
    _as3_getlocal <4>
    //a0
    _as3_add
    //60 8b 03
    _as3_getlex gameSpaceY
    //d3
    _as3_getlocal <3>
    //a0
    _as3_add
    //60 1b
    _as3_getlex com.wbwar.creeper::GameSpace
    //66 97 09
    _as3_getproperty WIDTH
    //a2
    _as3_multiply
    //a0
    _as3_add
    //66 e5 12
    _as3_getproperty {}
    //75
    _as3_convert_d
    //d5
    _as3_setlocal <1>
    //d1
    _as3_getlocal <1>
    //60 b7 01
    _as3_getlex com.wbwar.creeper::Glop
    //66 c4 0f
    _as3_getproperty MIN_HEAT
    //0f 29 00 00
    _as3_ifnge offset: 41
    //26
    _as3_pushtrue
    //d6
    _as3_setlocal <2>
    //5e f9 02
    _as3_findproperty health
    //60 f9 02
    _as3_getlex health
    //60 bf 03
    _as3_getlex com.wbwar.creeper:Weapon::damageAmt
    //a1
    _as3_subtract
    //68 f9 02
    _as3_initproperty health
    //60 f9 02
    _as3_getlex health
    //24 00
    _as3_pushbyte 0
    //0c 11 00 00
    _as3_ifnlt offset: 17
    //5e f9 02
    _as3_findproperty health
    //24 00
    _as3_pushbyte 0
    //68 f9 02
    _as3_initproperty health
    //5d a4 03
    _as3_findpropstrict destroy
    //4f a4 03 00
    _as3_callpropvoid destroy(param count:0)
    //26
    _as3_pushtrue
    //48
    _as3_returnvalue
    //c2 04
    _as3_inclocal_i <4>
    //62 04
    _as3_getlocal <4>
    //24 01
    _as3_pushbyte 1
    //16 9f ff ff
    _as3_ifle offset: -97
    //c2 03
    _as3_inclocal_i <3>
    //d3
    _as3_getlocal <3>
    //24 01
    _as3_pushbyte 1
    //16 8d ff ff
    _as3_ifle offset: -115
    //d2
    _as3_getlocal <2>
    //96
    _as3_not
    //2a
    _as3_dup
    //12 05 00 00
    _as3_iffalse offset: 5
    //29
    _as3_pop
    //60 8d 03
    _as3_getlex building
    //96
    _as3_not
    //12 1f 00 00
    _as3_iffalse offset: 31
    //5e f9 02
    _as3_findproperty health
    //60 f9 02
    _as3_getlex health
    //2f 15
    _as3_pushdouble 0.01
    //a0
    _as3_add
    //68 f9 02
    _as3_initproperty health
    //60 f9 02
    _as3_getlex health
    //60 99 03
    _as3_getlex maxHealth
    //0e 09 00 00
    _as3_ifngt offset: 9
    //5e f9 02
    _as3_findproperty health
    //60 99 03
    _as3_getlex maxHealth
    //68 f9 02
    _as3_initproperty health
    //d2
    _as3_getlocal <2>
    //48
    _as3_returnvalue
            }// end function



The code above is finally super short:
Code: [Select]
   //5e f9 02
    _as3_findproperty health
    //24 00
    _as3_pushbyte 0
    //68 f9 02
    _as3_initproperty health
    //5d a4 03
    _as3_findpropstrict destroy
    //4f a4 03 00
    _as3_callpropvoid destroy(param count:0)
    //26
    _as3_pushtrue
    //48
    _as3_returnvalue

The problem I encounter is how you know which parts of the long code you must take for a final code?

I am sorry if I sound stupid but I really want to learn and get my way rather than acting like a retard begging for codes. I prefer learn and contribute later.

I look forward to get some answers asap.  (broken image removed)

I want to start with finding the Fly hack in Transformice (broken image removed)
You only take as much as you feel necessary.  AoB hacking is comparable to finding a unique piece of a hypothetical string that is infinitely long (sort of like DNA if you have seen the bases represented of colors, but I digress).  You take a piece of this string (unique byte data) and scan the entire string for it, leaving you with the exact spot where your code-of-interest is.  Then you simply change the part you want, and only that part is changed.

With your example, I would take:
Code: [Select]
   //5e f9 02
    _as3_findproperty health
    //24 00
    _as3_pushbyte 0
    //68 f9 02
    _as3_initproperty health
    //5d a4 03

and make it:
Code: [Select]
5e f9 02 24 00 68 f9 02 5d a4 03
That might be able to be shortened, but w/e.  Change 00 to whatever you feel necessary.



TIM the Enchanter
Level: 1
ADR Info
Bear in mind that transformice is a topic that typically ends in a ban.  Should you find hacks, post that you found them, but please refrain from actually posting what you found, as this thread will turn into a flood of newfag posts.




Everything's coming up KongHack!

"When you know nothing matters, the universe is yours" ~Rick Sanchez