| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| Hieroglyphics I post too much
 
  Reputation: 0 
 Joined: 06 Dec 2007
 Posts: 2007
 Location: Your bedroom
 
 | 
			
				|  Posted: Sun Mar 23, 2008 12:14 pm    Post subject: [Tutorial] How to nop and make cleaner scripts! |   |  
				| 
 |  
				| This was first posted on MMOVision by me   
 Original Post by me
 
 Sponsered by MMOVision
 
 This tutorial may not matter much, but is useful for people who like things neat
   
 I will be showing you how to do this with nopping in this tutorial.
 
 First Step: Find an opcode that you would like to nop.
 
 The Bytes are what you will be using instead of opcodes to make this Auto-Assembly script looking neat. So for this address the bytes are:
 
 and the opcode which you would put in a normal script is:
 
 
 So now you can make your disable section which is:
 
  	  | Code: |  	  | [disable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 db 68 e0 17 08 00 //db means define byte so now you put this here since it is the original opcode/bytes so you can  restore the code once you disable the cheat
 | 
 
 but the original disable section would be:
 
  	  | Code: |  	  | [disable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 push 000817e0 //This is the original opcode so it can restore the code when you disable the cheat
 | 
 
 
   
 
 Second Step: Now we nop that address by right clicking and clicking replace with code that does nothing.
 
   
 
 Third Step: Once we nop the address we count how many opcodes change to nop or how many bytes change to 90 in a row below it.
 
 
   
 Fourth Step: In this case there are 5 nops or 90s so now we can build our enable section.
 
 The original script would look like this:
 
  	  | Code: |  	  | [enable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 nop //This is the amount of opcodes that changed to nop when you replaced with a code that does nothing
 nop
 nop
 nop
 nop
 | 
 
 
 but this script annoys some people and looks messy so to make it neater we can insert the bytes instead and make the script like this:
 
 
  	  | Code: |  	  | [enable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 db 90 90 90 90 90 //This is the amount of nops and one nop in bytes is 90 so we put define byte and 5 nops
 | 
 
 
 Then we would combine the enable and the original script would be:
 
 
  	  | Code: |  	  | [enable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 nop //This is the amount of opcodes that changed to nop when you replaced with a code that does nothing
 nop
 nop
 nop
 nop
 [disable]
 0008359A: //This is the address of the opcode which always before the opcode or bytes
 push 000817e0 //This is the original opcode so it can restore the code when you disable the cheat
 | 
 
 A much neater version of this script using bytes would be:
 
 
  	  | Code: |  	  | [enable] 0008359A: //This is the address of the opcode which always before the opcode or bytes
 db 90 90 90 90 90 //This is the amount of nops and one nop in bytes is 90 so we put define byte and 5 nops
 [disable]
 0008359A: //This is the address of the opcode which always before the opcode or bytes
 db 68 e0 17 08 00 //db means define byte so now you put this here since it is the original opcode/bytes so you can  restore the code once you disable the cheat
 | 
 
 See how the clean script without my commentary is 6 lines while the original script would be 10 lines long.
 
 You have just learned hop to nop and script neater!
 _________________
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Labyrnth Moderator
 
 ![]() Reputation: 10 
 Joined: 28 Nov 2006
 Posts: 6301
 
 
 | 
			
				|  Posted: Sun Mar 23, 2008 3:26 pm    Post subject: |   |  
				| 
 |  
				| I dont know about the script being cleaner, but it is a method beginners can maybe understand. nop is very common for novices to do.
 
 Instead of nop, you could find out what it is being pushed.
 Jump to a cave, edit your own and push your address instead of that one.
 It would be a very nice script.
 
 
 But props to you on your tutorial.
 
 
 P.S. too many comments in it makes it look cluttered as well.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Recifense I post too much
 
  Reputation: 166 
 Joined: 17 Mar 2008
 Posts: 3688
 Location: Pernambuco - Brazil
 
 | 
			
				|  Posted: Fri Apr 11, 2008 10:19 am    Post subject: |   |  
				| 
 |  
				| I agree that where NOP solves the problem it should be used.   
 But care should be taken when "nopping" some instructions. It is not a good practice to "nop" instructions that is related to stack (for exemple:  PUSH, POP, STP, etc). Sooner or later the application will crash.
 
 Cheers.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Tahayassen Advanced Cheater
 
 ![]() Reputation: 0 
 Joined: 04 Sep 2007
 Posts: 74
 
 
 | 
			
				|  Posted: Sat Jan 03, 2009 1:55 pm    Post subject: |   |  
				| 
 |  
				| Lol nice job  _________________
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Sora Grandmaster Cheater Supreme
 
  Reputation: 0 
 Joined: 14 May 2008
 Posts: 1471
 
 
 | 
			
				|  Posted: Sat Jan 03, 2009 11:03 pm    Post subject: |   |  
				| 
 |  
				| Nice job on the tut. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| sven3107 Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 04 Feb 2009
 Posts: 118
 Location: Belgium
 
 | 
			
				|  Posted: Sun Mar 08, 2009 10:05 am    Post subject: |   |  
				| 
 |  
				| defining bytes is neater indeed and i use that method as well but it comes with a major disadvantage: you don't know what the bytes mean when you or someone else wants to edit the script. 
 Always think twice before cutting into your script by defining bytes.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |