Codes
WiiRd forum
March 29, 2024, 10:05:24 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Welcome on the new server

Update 4.3 - do NOT update!
Gecko 1.9.3.1
Should I get a USB Gecko, I wanna hack?
How do I use my USB Gecko
Where can I get WiiRd?
 
   Home   CODE DATABASE GAMEHACKING Help Search Login Register  
Pages: 1 [2] 3
  Print  
Author Topic: [Tutorial]Simple ASM codes  (Read 20905 times)
adr990
Newbie
*

Karma: 10
Posts: 37


« Reply #15 on: May 31, 2010, 09:37:29 PM »

Thanks Romaap, I did forgot about this a little.

Now I might just start making real cheats again, yay. Tongue

Adr990
Logged

~I'm not responsible for any damage any of my cheats will be caused to you or your console~ (In fact nobody is, but you.)
zfan121
Jr. Member
**

Karma: 1
Posts: 95


« Reply #16 on: June 05, 2010, 06:09:33 PM »

Hmm okay, I was thinking of maybe getting into this hacking thing, since it seems to make games fun and I have some very minor experiance with C+ and the visual basic programming.(I used it to mess around with a game maker program) I would like links to like some super simple tutorials if someone would be kind enough to link me to some. I also have like all freetime, so I got plenty of time for requests XD

If I wanted to make simple one lined codes, how should I go about doing so to make them work as if they were like a six lined code. I know the more rows of code the more complex the action, but still it's a good spot to start.
And what about choosing what the hell I want the cheat to do. For example if I wanted to make mario look like princess peach, would I just simply type that in and the code would do so after I've figured said code out :s
Logged
superman
Hacker
Newbie
*****

Karma: 1
Posts: 18

will be iso modding after my birthday

marcel+jiron
WWW
« Reply #17 on: December 20, 2010, 07:19:42 AM »

Spoiler for Hiden:
OK, i'm a bit bored so i'll try to show you guys how to make some simple ASM codes.


Introduction to ASM
First you need to know, what is assembly?
Well, assembly is a low-level programming language. (languages like C and Java are high-level programming languages)
An example of an assembly instruction:
li  rA, value
What this does is, it tells the Wii to load value to rA. (li means 'Load immediate')

But what is rA?
rA is a register, the Wii has 31 registers.
A register is sort of a temporary space to store values, like RAM but the registers are easier to access by the CPU.

So if we have li r16, 0x14  then the Wii will write 0x14 to r16.
Another example is 'Add immidiate':
addi rD, rA, value
What this does is add value to the value at rA and store it in rD.
So if we have addi r16, r20, 0x3 and the value of r20 is 0x2 then 0x5 is stored to r16.
(This is the same as 'Subtract immediate': subi rD, rA, value)
rD is in most examples the destination register, the destination register is almost always the first register.
The other registers are not altered (in this example r20 stays 0x2).

Another example is 'Subtract':
sub rD, rA, rB
This one subtracts the value in rB from rA and store it in rD (and again, only rD is altered).
So if we have sub r16, r20, r21  and the value of r20 is 0x9 and r21 is 0x3 then 0x6 will be stored to r16.
(This is the same as 'Add': add rD, rA, rB)

The last example is 'Store word', which will store the value in a register to the RAM:
stw rS, d(rA)
This will store the value in rS to the address in rA + d.
So if we have stw r20, 100(r0)  and the value of r20 is 0xA and r0 is 0x80605040 then 0xA will be stored to 0x806050A4 (0x80605040 + 100 (0x64))
If you want to load a value from an address then you use 'Load word and Zero':
lwz rD, d(rA) which works like stw but the opposite, the value from the address in rA + d will be stored to rD.

This concludes the introduction to ASM, I hope you understand it Smiley


First you'll need the address of the thing you want to hack, like health. (If you dont know this basic stuff I recommend you to read/watch some other tutorials first)
I use Klonoa for example in this tutorial.

Health hack (using nop)
So, if you found the address of the health you right click it and press ->Breakpoint.
Spoiler for Hiden:

Go to the breakpoint tab and click the write button and click Set Breakpoint.
Spoiler for Hiden:

Now get hit in the game, the game will freeze.
Spoiler for Hiden:

WiiRd will show some numbers, the numbers in the top box are the registers.
The 2nd box shows the ASM instructions that were about to be executed.
Spoiler for Hiden:


Now go to the disassembler tab and you will see something that looks like the second box in the breakpoint tab.
Spoiler for Hiden:

In this tab you can edit the ASM instructions.
Now i'll introduce another ASM instruction: nop, wich does... nothing Cheesy It tells the CPU to just wait one cycle.
So... we have an ASM instruction that writes the health to the health address, and we know how to change instructions... and we know an instruction that does nothing...
Lets replace some instructions Cheesy
Click on the box wich has the stw intruction and replace it with nop, and click update.
Now click run and try to get hit in the game Cheesy Cheesy Cheesy no damage
So, now to make it a code: right click on the instruction and click ->gct codes
Spoiler for Hiden:

Add a new code and replace the first 80 with 04 click add code.
Spoiler for Hiden:



Simple ASM RAM Writes
Soon?

Money is worth twice its value
soon?


Please give some feedback Cheesy
If you dont understand something, or have something to add please tell me Cheesy
ok umm how would you make a inf health say for world at war wii and say you want it host only and only works for you. And how would i make a inf ammo host only that only works for you and not all players?
Logged
doomkaiber001
Hacker In Training
Full Member
***

Karma: 1
Posts: 163

One day I'll be a hacker! Using ASM too!


« Reply #18 on: December 21, 2010, 09:54:30 AM »

I have a little experience in ASM, so maybe I could help?

lis r5, 0x80E4
ori r5, r5, 0x6BC7
lwz r29, 0(r5)
cmpwi r29, 200
ble LowAmmo
bgt HighAmmo
LowAmmo:
addi r29, r29, 100
cmpwi r29, 200
blt LowAmmo
b End
HighAmmo:
subi r29, r29, 100
cmpwi r29, 100
bge HighAmmo
End:
stw r29, 0(r5)

If you could make something like that? I don't play WaW so I can't really be of much help... Sad
Logged
superman
Hacker
Newbie
*****

Karma: 1
Posts: 18

will be iso modding after my birthday

marcel+jiron
WWW
« Reply #19 on: December 21, 2010, 04:05:55 PM »

I have a little experience in ASM, so maybe I could help?

lis r5, 0x80E4
ori r5, r5, 0x6BC7
lwz r29, 0(r5)
cmpwi r29, 200
ble LowAmmo
bgt HighAmmo
LowAmmo:
addi r29, r29, 100
cmpwi r29, 200
blt LowAmmo
b End
HighAmmo:
subi r29, r29, 100
cmpwi r29, 100
bge HighAmmo
End:
stw r29, 0(r5)

If you could make something like that? I don't play WaW so I can't really be of much help... Sad
ya i get it. is there a program to turn that into a gecko format
Logged
Bully@Wiiplaza
Hacker
Legendary Member
*****

Karma: 93
Posts: 1853


WWW
« Reply #20 on: January 01, 2011, 03:16:25 PM »

@superman:
ASM WiiRD Tool or PyiiASMH
Logged

My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully
-LeetGamer-
Elite PSP Coder
Newbie
*

Karma: 0
Posts: 14

iLeetGamer
WWW
« Reply #21 on: January 23, 2011, 05:17:28 AM »

Thanks for posting this, I code in assembly for the PSP and I was looking for a tutorial on Wii assembly. This looks exactly like the MIPS assembly language, is it MIPS? If so, when I get a Wii, most of my favorite game's online modes will be turned into dust. Don't mean to brag though, but look at what I've done to some PSP games: http://www.youtube.com/user/LeetGamer4L#g/c/8921CD6BF7555D93 ^__^

EDIT:

Some of these might be a bit old, but I'll still reply:

Thanks Romaap! Cheesy

THIS NEEDS TO BE MOVED TO THE COLLECTIVE!! Wink

I hope you update it, because I want to know how to do the double money codes!  Smileyface

To do double money try this:

li r0 [Upper 16bits of "Flag" address.]
lwz r1 [Lower 16bits of "Flag" address.](r0)
bgt r1 [To the end of the code. Not sure how to do this for Wii yet.]
li r2 [Upper 16bits of the "Money" address.]
lwz r3 [Lower 16bits of the "Money" address.](r2)
add r3 r3 r3
stw r3 [Lower 16bits of the "Moeny" address.](r2)
li r1 1
stw r1 [Lower 16bits of "Flag" address.](r0)

I use a flag address to check for a value. Make sure that this value is zero (ASM of nop) by default, and it isn't changed by anything besides this code. After the code has ran one time I store 1 to the value of the flag address, the bgt command will then branch to the end of the code the next time the routine is ran. So it only doubles one time, and doesn't continue to double all the time. The rest of the code is just loading the value at the memory address for the money, then adding it to itself (doubling it) and then storing it back.

Note: I'm new to Wii ASM so I'm not 100% sure about that, if you see that I made an error please correct me.

Spoiler for Hiden:
OK, i'm a bit bored so i'll try to show you guys how to make some simple ASM codes.


Introduction to ASM
First you need to know, what is assembly?
Well, assembly is a low-level programming language. (languages like C and Java are high-level programming languages)
An example of an assembly instruction:
li  rA, value
What this does is, it tells the Wii to load value to rA. (li means 'Load immediate')

But what is rA?
rA is a register, the Wii has 31 registers.
A register is sort of a temporary space to store values, like RAM but the registers are easier to access by the CPU.

So if we have li r16, 0x14  then the Wii will write 0x14 to r16.
Another example is 'Add immidiate':
addi rD, rA, value
What this does is add value to the value at rA and store it in rD.
So if we have addi r16, r20, 0x3 and the value of r20 is 0x2 then 0x5 is stored to r16.
(This is the same as 'Subtract immediate': subi rD, rA, value)
rD is in most examples the destination register, the destination register is almost always the first register.
The other registers are not altered (in this example r20 stays 0x2).

Another example is 'Subtract':
sub rD, rA, rB
This one subtracts the value in rB from rA and store it in rD (and again, only rD is altered).
So if we have sub r16, r20, r21  and the value of r20 is 0x9 and r21 is 0x3 then 0x6 will be stored to r16.
(This is the same as 'Add': add rD, rA, rB)

The last example is 'Store word', which will store the value in a register to the RAM:
stw rS, d(rA)
This will store the value in rS to the address in rA + d.
So if we have stw r20, 100(r0)  and the value of r20 is 0xA and r0 is 0x80605040 then 0xA will be stored to 0x806050A4 (0x80605040 + 100 (0x64))
If you want to load a value from an address then you use 'Load word and Zero':
lwz rD, d(rA) which works like stw but the opposite, the value from the address in rA + d will be stored to rD.

This concludes the introduction to ASM, I hope you understand it Smiley


First you'll need the address of the thing you want to hack, like health. (If you dont know this basic stuff I recommend you to read/watch some other tutorials first)
I use Klonoa for example in this tutorial.

Health hack (using nop)
So, if you found the address of the health you right click it and press ->Breakpoint.
Spoiler for Hiden:

Go to the breakpoint tab and click the write button and click Set Breakpoint.
Spoiler for Hiden:

Now get hit in the game, the game will freeze.
Spoiler for Hiden:

WiiRd will show some numbers, the numbers in the top box are the registers.
The 2nd box shows the ASM instructions that were about to be executed.
Spoiler for Hiden:


Now go to the disassembler tab and you will see something that looks like the second box in the breakpoint tab.
Spoiler for Hiden:

In this tab you can edit the ASM instructions.
Now i'll introduce another ASM instruction: nop, wich does... nothing Cheesy It tells the CPU to just wait one cycle.
So... we have an ASM instruction that writes the health to the health address, and we know how to change instructions... and we know an instruction that does nothing...
Lets replace some instructions Cheesy
Click on the box wich has the stw intruction and replace it with nop, and click update.
Now click run and try to get hit in the game Cheesy Cheesy Cheesy no damage
So, now to make it a code: right click on the instruction and click ->gct codes
Spoiler for Hiden:

Add a new code and replace the first 80 with 04 click add code.
Spoiler for Hiden:



Simple ASM RAM Writes
Soon?

Money is worth twice its value
soon?


Please give some feedback Cheesy
If you dont understand something, or have something to add please tell me Cheesy
ok umm how would you make a inf health say for world at war wii and say you want it host only and only works for you. And how would i make a inf ammo host only that only works for you and not all players?

Not sure why Wii games are programed to be able to access other people's health. Like a code that gives everyone infinite health (That is what I think you are talking about?) If this is true then I can make codes where everyone dies instantly like I did here on the PSP:

http://www.youtube.com/watch?v=Q-P4fAFLv3I
http://www.youtube.com/watch?v=T5n_2qO4sT0
http://www.youtube.com/watch?v=jp10NuQnavI
http://www.youtube.com/watch?v=61FJo_ETjDU

But those don't actually just store 0 to an enemy value, they use function calls in ASM (If you want to know more PM me)
« Last Edit: January 23, 2011, 07:48:26 AM by -LeetGamer- » Logged

dcx2
Computer Engineer
Moderator
Legendary Member
*****

Karma: 165
Posts: 3468


WWW
« Reply #22 on: January 23, 2011, 04:30:07 PM »

FYI, a significant portion of this community has a hatred for online hacks that is best described as "rabid".

In addition, many online codes are forbidden on the forum and in the GeckoCodes database.  Please read the following thread to ensure you don't trip over the rules.

http://wiird.l0nk.org/forum/index.php/topic,5664.0.html

BTW, thanks for outing yourself as a griefer.  One less person for me to help.
Logged

-LeetGamer-
Elite PSP Coder
Newbie
*

Karma: 0
Posts: 14

iLeetGamer
WWW
« Reply #23 on: January 23, 2011, 08:57:44 PM »

FYI, a significant portion of this community has a hatred for online hacks that is best described as "rabid".

In addition, many online codes are forbidden on the forum and in the GeckoCodes database.  Please read the following thread to ensure you don't trip over the rules.

http://wiird.l0nk.org/forum/index.php/topic,5664.0.html

BTW, thanks for outing yourself as a griefer.  One less person for me to help.

This community is actually about preserving online games? lol awesome, no one on the PSP scene cares about the safety of online games, so I just destroyed them Tongue. I guess I can try to not release huge game killing ones, but I'll make some videos of them instead ^_^.

I'll read over the rules a few times, make sure I know them.

And I'm not a griefer, I just like to code ¬_¬.
Logged

Deathwolf
Hacker
Legendary Member
*****

Karma: 62
Posts: 1795


WWW
« Reply #24 on: January 23, 2011, 09:12:34 PM »

FYI, a significant portion of this community has a hatred for online hacks that is best described as "rabid".

In addition, many online codes are forbidden on the forum and in the GeckoCodes database.  Please read the following thread to ensure you don't trip over the rules.

http://wiird.l0nk.org/forum/index.php/topic,5664.0.html

BTW, thanks for outing yourself as a griefer.  One less person for me to help.

This community is actually about preserving online games? lol awesome, no one on the PSP scene cares about the safety of online games, so I just destroyed them Tongue. I guess I can try to not release huge game killing ones, but I'll make some videos of them instead ^_^.

I'll read over the rules a few times, make sure I know them.

And I'm not a griefer, I just like to code ¬_¬.

I'm sure you would be a nice online hacker  Smiley
Logged

lolz
Sh0tGuN2197
Hacker
Newbie
*****

Karma: 0
Posts: 34


WWW
« Reply #25 on: February 25, 2011, 10:53:22 PM »

Thanks Rommap  Azn Very helpful. In some games though, the game freezes right when the "set breakpoint" button is pressed. I know it is the right address too =\ any ideas?
Logged
Deathwolf
Hacker
Legendary Member
*****

Karma: 62
Posts: 1795


WWW
« Reply #26 on: February 25, 2011, 10:54:20 PM »

Click on RUN
Logged

lolz
Sh0tGuN2197
Hacker
Newbie
*****

Karma: 0
Posts: 34


WWW
« Reply #27 on: February 25, 2011, 10:55:59 PM »

I do that... But then it doesn't freeze to get the addresses... Or the info... Whatever you want to call it.
Logged
Deathwolf
Hacker
Legendary Member
*****

Karma: 62
Posts: 1795


WWW
« Reply #28 on: February 25, 2011, 11:00:25 PM »

Click after the freez RUN
Logged

lolz
dcx2
Computer Engineer
Moderator
Legendary Member
*****

Karma: 165
Posts: 3468


WWW
« Reply #29 on: February 26, 2011, 12:36:19 AM »

When you hit a breakpoint, the game will freeze.  This is normal.  A breakpoint tells the CPU "Stop executing instructions and wait while I take a look at things".  You can press Step to have the CPU execute a single instruction and then go back to waiting.  You can press Run to have the CPU continue executing instructions normally without waiting.
Logged

Pages: 1 [2] 3
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!