Guest Book Daniels Putra Silahkan Tinggalkan Jejak Disini, Tapi Ingat Jagalah Kesopanan...!!
.:: Happy Blogging ::.





Mau nonton TV Online Streaming HD? Kesini aja TV SERU!!

Jumat, 11 Juli 2014

The AOB Scan Instruction With Cheat Engine


Many people were asking for an aobscan tutorial so here I make a short description for using aobscan.

Why are we using aobscan frequently?
In many cases, the address of the code that we want to change is not static. This may happen in many games
where the codes are loaded only when they are used and it also happens if you are not using the same
game version. If  the code itself did not change, only the address of the code, you can use aobscan to find the code's address.


First I will start with an example where I show how can you change a simple script into an aobscan script,
then I will explain it in more details for those who want to know how is it working. At the end I will write
some more advanced hints for specific problems that you may encounter when you are using aobscan.


The target process is the Tutorial program for CE 6.2. Here is a normal script that will solve Step 2
of the tutorial (at this point I assume that you can make cheats with static code addresses).

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
mov [ebx+00000464],(int)1000

originalcode:
mov eax,[ebx+00000464]

exit:
jmp returnhere

"Tutorial-i386.exe"+22988:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Tutorial-i386.exe"+22988:
mov eax,[ebx+00000464]
//Alt: db 8B 83 64 04 00 00


To change this into a script with aobscan, you have to make a few modifications only (look at the comments):

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(whatever)                      //make a label that you can use for your aobscan
registersymbol(whatever)             //also register it as a symbol
aobscan(aob1,8B 83 64 04 00 00 3D)   //use aobscan to search for the code, more explanation later


newmem: //this is allocated memory, you have read,write,execute access
mov [ebx+00000464],(int)1000

originalcode:
mov eax,[ebx+00000464]

exit:
jmp returnhere

aob1:             //replace the static address with your aobscan, which is called aob1 in my case
whatever:         //store aob1 on the whatever label
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
whatever:                    //replace the static address with the whatever label
db 8B 83 64 04 00 00         //restore the original byte pattern
unregistersymbol(whatever)   //we don't need this symbol anymore so unregister it


If you copy-paste this script into CE, it will scan for the code that I have changed in the original script
and do the same code injection. Now I should explain a few things in more details, though it is not really
neccessary to understand everything in order to use aobscan.



The aobscan instruction:

This instruction is used to find a byte pattern in the memory and store the address of the first result. Important
to remember that if there are more results for the scan, the first result will be used. Make sure to have only one
result for your scan or at least the first one should be the correct address that you want to find.

The code that we have changed in the original script was this:

Tutorial-i386.exe+22988 - 8B 83 64040000        - mov eax,[ebx+00000464]
Tutorial-i386.exe+2298E - 3D E8030000           - cmp eax,000003E8

If you look at it in the disassembler, you can see how is this instruction stored in the memory.
8B 83 64 04 00 00
3D E8 03 00 00

You have to come up with a pattern that will identify this code. Let's do this:
Switch value type to "Array of byte", make sure that the "Writable" box is just "optional" and it doesn't have
a checkmark in it, as the code we are looking for is NOT writable, only executable. Now scan for this byte pattern

8B 83 64 04 00 00

You will probably have 8 results, which is not a good start and if you check the first result, it is not the
correct code we are looking for. Thus we can see that we can't use this byte pattern. Now we have to come up with a new pattern that will filter out the 7 wrong results. As we can see, the first byte of the next instruction
starts with 3D. Try to scan for this byte pattern:

8B 83 64 04 00 00 3D

Now you will have one result, or at least the first one will be the code that you are looking for. This byte
pattern can be used to find our code's address. The syntax is very simple

aobscan(name,byte pattern)
aobscan(aob1,8B 83 64 04 00 00 3D)

The name of the aobscans and symbols can be anything, it's up to you. After this instruction is executed,
aob1 is equal to "Tutorial-i386.exe"+22988 address. You can use aob1 to refer to this address.

NOTE: The * character is a joker character. If you put * in your byte pattern, it can be anything.
Eg
"* 83 64 04 00 00 3D" could be anything from "00 83 64 04 00 00 3D" to "FF 83 64 04 00 00 3D"
When you are not sure that a byte will be the same in other game versions, use *.




Making the script:

As you see it was neccessary to make a few modifications in the original script to use aobscan. You can just
copy-paste these changes into your script without ever asking why are they needed, but if you are curious, here
are the reasons.


label(whatever)
registersymbol(whatever)

You are not able to use your aobscan result in the disable section and you can't scan for the code either, because you have changed it with your code injection. This is why the address has to be saved somewhere for later use.


aob1:             //replace the static address with your aobscan, which is called aob1 in my case
whatever:         //store aob1 on the whatever label

This is the part where we store aob1 on the "whatever" symbol so we can use it in the disable section too.


Disable section

whatever:                    //replace the static address with the whatever label

This is why we have saved the address on "whatever", we need to restore the original code in the disable section.


db 8B 83 64 04 00 00         //restore the original byte pattern

Yes. I have replaced

mov eax,[ebx+00000464]
//Alt: db 8B 83 64 04 00 00

with the original byte pattern. The reason is that the instruction may be compiled differently by CE and we have to be 100% sure to restore the instruction exactly as it was.

Example:
mov eax,[ebx+ecx++00000464]
and
mov eax,[ecx+ebx++00000464]
has the same results, but they are not the same instruction. We have to make sure that we restore the same instruction that has exactly the same byte pattern as the original. If we fail to do that, the original byte pattern will be lost and your aobscan will not find it if you try to enable the cheat again. Always be 100% sure that you have restored the original byte pattern, or the users will not be able to turn the script on/off.


unregistersymbol(whatever)   //we don't need this symbol anymore so unregister it

Simple clean-up. Remove the symbol that we are not using anymore.




Advanced tips and solutions to various problems that you may encounter when you are using aobscan:


The most common mistakes with aobscan are using the same symbol names when you have more than one script and not restoring the original code correctly. You should always use separate symbol/label/aobscan names in different scripts and as I have said above, be 100% sure that you have restored the original byte pattern. If your scripts are working correctly, they can be turned on/off anytime independently, without interfering with each other. It is easy to make mistakes and the users often blame CE for some bug, but if you have followed the instructions properly, it should work. The error is in your script, somewhere something is screwed up. Double-check everything, look at the changes in the disassembler when you turn the cheats on/off, check the original code and the restored code that they are really matching etc.


Make sure that your byte pattern is not containing static addresses or other codes that will most likely change
in other versions of the game. Eg a code like

call 00908070

will be different in another version of the game, because 00908070 is a static address. Replace static addresses with * character. Every * is a byte. So replace the address with * * * * in the pattern.



How to make a code injection at an address if you do not find a byte pattern for that particular address?


Let's assume that we want to change this code

Tutorial-i386.exe+22988 - 8B 83 64040000        - mov eax,[ebx+00000464]
Tutorial-i386.exe+2298E - 3D E8030000           - cmp eax,000003E8
Tutorial-i386.exe+22993 - 75 2C                 - jne Tutorial-i386.exe+229C1

and we have a byte pattern that gives us "Tutorial-i386.exe+22988" but we want to make the code injection at this address:

Tutorial-i386.exe+2298E - 3D E8030000           - cmp eax,000003E8

If we do not find any working byte pattern that will find Tutorial-i386.exe+2298E, we can use the previously discovered byte pattern that gives us Tutorial-i386.exe+22988 as the result. The original code would look like this:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
mov [ebx+00000464],(int)1000

originalcode:
cmp eax,000003E8

exit:
jmp returnhere

"Tutorial-i386.exe"+2298E:
jmp newmem
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Tutorial-i386.exe"+2298E:
cmp eax,000003E8
//Alt: db 3D E8 03 00 00


The aobscan version will be this:


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(whatever)                     
registersymbol(whatever)            
aobscan(aob1,8B 83 64 04 00 00 3D)  

newmem: //this is allocated memory, you have read,write,execute access
mov [ebx+00000464],(int)1000

originalcode:
cmp eax,000003E8

exit:
jmp returnhere

aob1+6:             //22988+6 = 2298E so we are making our code injection on 2298E address instead of 22988
whatever:        
jmp newmem
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
whatever:
db 3D E8 03 00 00
unregistersymbol(whatever)


As you can see, we have used the byte pattern that gives us Tutorial-i386.exe+22988 as a result but since we want to make the code injection at 2298E, we have simply used aob1+6 instead of aob1. 22988 + 6 = 2298E and since aob1 = 22988, aob1+6 is also equal to 2298E.



Jumps in your script:

Jump instructions in the original code will cause problems for you if you don't handle them properly. The source of the problem is this:

Tutorial-i386.exe+22988 - 8B 83 64040000        - mov eax,[ebx+00000464]
Tutorial-i386.exe+2298E - 3D E8030000           - cmp eax,000003E8
Tutorial-i386.exe+22993 - 75 2C                 - jne Tutorial-i386.exe+229C1
Tutorial-i386.exe+22995 - 8B 83 4C040000        - mov eax,[ebx+0000044C]


CE will show you that conditional jump as jne Tutorial-i386.exe+229C1 to make things easier, but in reality, that instruction is jne +2C. It will jump forward 2C bytes.

What happens if you use this code?

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
jne Tutorial-i386.exe+229C1
mov eax,[ebx+0000044C]

exit:
jmp returnhere

"Tutorial-i386.exe"+22993:
jmp newmem
nop
nop
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Tutorial-i386.exe"+22993:
jne Tutorial-i386.exe+229C1
mov eax,[ebx+0000044C]
//Alt: db 75 2C 8B 83 4C 04 00 00


Will it work? Absolutely. The problem is, Tutorial-i386.exe+229C1 is a static address and you can't jump to a static address, because it will be different in other game versions. This jump will work when you are making a normal script, but you can't use it with aobscan.

So let's replace it with the original instruction, jne +2C.


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
jne +2C
mov eax,[ebx+0000044C]

exit:
jmp returnhere

"Tutorial-i386.exe"+22993:
jmp newmem
nop
nop
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Tutorial-i386.exe"+22993:
jne +2C
mov eax,[ebx+0000044C]
//Alt: db 75 2C 8B 83 4C 04 00 00


What will happen if you enable this? If you are lucky, your program will not crash. But it will not work either. Because if you jump forward 2C bytes in the allocated memory that you have created, you end up at the middle of nowhere. Don't forget that this jump is calculating the destination from the current address so when you make a code injection, it is calculating the jump from the allocated memory.

Ok how to fix this? First we need a byte pattern for this code.

75 2C 8B 83 4C 04 00 00

Now calculate the difference between "Tutorial-i386.exe"+22993 and the destination of the jump, Tutorial-i386.exe+229C1. The difference is 2E bytes, which means that aob1+2E = Tutorial-i386.exe+229C1.

Why not 2C? We have jne +2C and now we have 2E. The answer is that the relative jump will calculate the destination from the end of the instruction and we are calculating it from the first byte of the instruction. Our instruction takes up 2 bytes, this is why the difference is 2 bytes higher.
Now that we know how should we change the jump, we can make a script that will jump to aob1+2E, wherever it is found by the aobscan.


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(whatever)
registersymbol(whatever)
aobscan(aob1,75 2C 8B 83 4C 04 00 00)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
jne aob1+2E
mov eax,[ebx+0000044C]

exit:
jmp returnhere

aob1:
whatever:
jmp newmem
nop
nop
nop
returnhere:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
whatever:
db 75 2C 8B 83 4C 04 00 00
unregistersymbol(whatever)


Tada, we have made a magnificent script that is absolutely not making anything useful, but at least it is jumping at the right location, despite the fact that the jump instruction itself is far away from the destination. Now let's do something useful and replace jne with je. This will solve Step 2 of the tutorial and you can proceed to step 3.


In this moment, nothing more comes to my mind about this topic. This should be enough to deal with most of the problems that you will face when you are using aobscan.
More

Checking If A Register Has A Fix Value With Cheat Engine



If you have made cheats for some time now, you have probably noticed that you can use many codes to calculate a value, not just the one that is accessing to it. It happens many times that you find a code where a register can be used to calculate the address that you need, for example a register is holding the address of your health somewhere in the code etc. In those cases, it is very important to make sure that the register is always pointing to your health only and not holding any other value at the specific code. For this, you can do some manual debugging but to make sure that you don't mess up anything, you can also use a small script to check if the value of the register is changing or not. So to make my work easier, I have made this script and I post it here in case someone want to use it. If you don't know how to use it, you probably don't need it yet.
In this example, the script is checking if EAX always have the same value at a specific code. The code that I am using is from the tutorial of CE 6.1. In the example, EAX is holding the value of your health in step 2, thus it would not be suitable to calculate an address, but it is fine for an example for illustrating. So here is the script that you need to add to a table:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(logging_register)
label(checking_register)
label(exit)
globalalloc(regcheck,4)
globalalloc(regcheck_counter,4)
globalalloc(recordtime,4)
regcheck:
dd EEEEEEEE
regcheck_counter:
dd 0
recordtime:
dd 1
newmem: //this is the original code here now
mov eax,[ebx+00000458]
logging_register:
cmp [recordtime],1
jne checking_register
mov [recordtime],0    //this code will run only once
mov [regcheck],eax    //recording register value
checking_register:
cmp eax,[regcheck]   //checking stored value with register
je exit              //if it's ok, quit
inc [regcheck_counter]   //if not ok, increase regcheck_counter value

exit:
jmp returnhere
00421138:
jmp newmem
nop
returnhere:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
00421138:
mov eax,[ebx+00000458]
//Alt: db 8B 83 58 04 00 00

If this is done and you have activated your script, you also have to add regcheck_counter to your table to see the value, or you can just jump to that address in the memory browser. By going to regcheck value, you can also see what was the value that was logged for the register.
Now if you are at step 2 in the tutorial and you don't do anything, regcheck_counter = 0. This means that EAX has always the same value. If this value would be an address, you could think at first sight that this a good register to use for your purposes, but now click on Hit me and regcheck_counter will start to increase, indicating that EAX register's value has been changed compared to the first recorded value. In this case, you could conclude that EAX cannot be used to calculate your address as the value is sometimes different than what you need.

I am not sure that everyone will understand the purpose of this script but those who will can use this example to change it for the code that they want to examine. It is a good way to test a register automatically instead of manual debugging so you can play for some time without hitting breakpoints all the time, freezing your gameplay.

Here is a table with the code and address for the tutorial:
shared_register_check [danielsputra.blogspot.com].rar

Also here is a video for demonstration:



More

Cara Hack Game Flash Dengan Menggunakan Cheat Engine

 

This is a small description on how to find values in flash games generally. It does not cover the tutorial on how to find values, only the part which is unique to flash games.
First of all, flash games are working differently from other games, so the usual pointer, code injection methods etc will not work here (or at least not as You would expect). CE is by far not the best choice to hack a flash game, that is why universal flash trainers were created. I rarely play and hack flash games, so this is not a professional tutorial, just some methods that You may try if You are stuck.

Because most of the users are thinking about Flash games that they work as normal games, I will explain it in a few words what is the difference. If You hack a normal game, You just start the exe file, than You do the usual hacks and when You get back, the code will remain the same. The exe file is not changing. However if You update the game, of course the exe file will change in the new version and You will have to make another trainer based on the new codes (or use AOBscan but that is a "special" method). So how are flash games working? Usually You start the browser, the browser will load the flash player plugin and the flash player plugin will run the swf file. So when You try to hack the game, You try to hack the browser or flash player, which is using the swf file. Now if You try to make a trainer, You will obviously have to think about this question: will other people use exactly the same browser and flash player plugin as me not to mention browser updates and other kind of plugins and system components which is related to the browser? Well, not. Their browser will be different at least in one little thing, the codes and pointers will be different on their computers so the idea of making a working trainer which is based on code injection or pointers is generally screwed. It is just like everyone would use a special version of the game which is different from Yours. All You can do is to make some pointers which will work with Your browser on Your computer at least until You don't update or install anything in it, or You can use AOBscan to write a script which is searching for specific codes and change them with code injection. Using code injection with flash games is much harder so if You choose that method, You have to be really good. Now lets continue...

Important note from CE's creator (DarkByte):
If you're using firefox and want to use Cheat Engine on a browser game, then open plugin-container.exe instead of the firefox process. (That process will only exist when the game has already been started)

If You want to find a value in a flash game with CE, these are the main methods that are usually working:
1. Search for the value as a "4 byte" value. This is simple enough and it is working with most of the new games which has been written in AS3.
2. Search for the value as a "Double type" value. Some older flash games are using double type values to store the variables.
3. Search for the value as a "4 byte" value, but multiply the value with 8 when You search for it. For example You have 100 gold in the game, then You need to search for 800. If You have found it and You want 10000 gold, You need to change it to 80000. If You type in a value which cannot be divided with 8, most likely You will crash the game.
4. Remember there is an option in CE to search for ALL value types, so if You don't have a clue, try it out. It may be Double, 4 byte, whatever.
5. Some games are always changing the address of the values, in this case You need to find the value from 1 search. Most of this games are multiplying the value with 8, so You need to use the 3rd method, but You have only one shot at it to find it and the address will be moved. You also need to pause the game with CE to prevent the game from moving the address elsewhere until You find it and change it. To pause the process, click on "Advanced options" at the bottom of CE and click on the pause button. Then search for the value and if You find it, change it. If not, or You have too many results, try it again. Generally the bigger the number that You search for, the less results will be. For example if You search for 8, You will have tons of results. If You search for 3635384, You will have far less, most likely only a few (or maybe only one result which is the best).
6. Some games are using encryptions to protect the game from hackers. In this case, You can still search for unknown value and changed/unchanged values. Maybe You will find what You seek.
That is all I can recommend for now.
Just a small addition for users who have downloaded the new CE 6.0 already.
A custom scan script made by Dark Byte. It multiplies the values with 8 automatically. Useful for some flash games where the values are multiplied.
You can add this script to CE 6 this way:
1. Right-click on the Value type field.
2. Choose "Define new custome type (Auto assembler)"
3. Delete everything from the window and copy-paste this script.
4. Click on OK.
Now You have a new value type in the list which is good for flash games where the value is multiplied by 8. You just type in the values as You see them
in the game and it will be multiplied by CE automatically.

The script:
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
TypeName:
db 'Flash *8 type',0
ByteSize:
dd 4
//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]
//at this point ecx contains the address where the bytes are stored
//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,3 //shift right by 3 bits (divide by 8)
//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/32-bit]
//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]
//at this point edx contains the address to write the value to
//and ecx contains the value
//ok, saving the original bits is currently not in, but when it is uncomment the commented lines
push eax
//push edx

//mov edx,[edx] //edx now contains the original value
//and edx,7 //only save the first 3 bits
mov eax,ecx //eax gets the user input value
shl eax,3 //shift left by 3 bits (multiply by 8)
//or eax,edx //add the bits of the original value
//pop edx
mov [edx],eax //write the new value into the old value
pop eax
[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]
[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]
More

Cara Membuat Akun Paypal Dengan Mudah Dan Gratis

Apa itu PayPal? yaitu sebuah Payment Processor yang paling populer di dunia maya. PayPal merupakan salah satu media pembayaran terpercaya yang banyak digunakan oleh pelaku transaksi online, baik penjual (merchant) maupun pembeli. Rasanya tidak lengkap jika para netter termasuk anda belum memiliki account di PayPal.
Sebelum melakukan pendaftaran atau membuka account di PayPal, terlebih dahulu siapkan data-data anda untuk membuat account PayPal seperti alamat Email, alamat tempat tinggal sesuai KTP, telepon, dll.
 
Cara Membuat Rekening PayPal-100% Gratis, sebagai berikut:
1.      Buka situs PayPal sekarang DISINI atau klik banner di atas untuk menuju halaman pendaftaran seperti gambar di bawah ini:
 

Tips : Jika anda kurang memahami bahasa Inggris, anda bisa mengganti bahasa default dengan bahasa Indonesia seperti pada gambar di atas.
 
 
3.      Pilih negara (wilayah) dan bahasa yang digunakan yaitu Indonesia. Lalu pilih tipe account yang anda inginkan dari tiga tipe yang tersedia. Saya sarankan untuk memilih tipe “Primer” saja karena memiliki berbagai kelebihan dibanding tipe “Pribadi” dan bisa diupgrade ke tipe “Bisnis” di lain waktu apabila diperlukan. Setelah itu tekan tombol “Memulai“. Selanjutnya akan terbuka halaman formulir pendaftaran online seperti gambar berikut:
 
 
Isilah formulir pendaftaran dengan petunjuk sebagai berikut:
Alamat email : isi dengan alamat e-mail anda yang akan anda gunakan sebagai rekening/account PayPal. (PayPal tidak menggunakan nomor rekening seperti di bank). Sebaiknya buat alamat e-mail khusus untuk dijadikan sebagai account PayPal yang berbeda dengan alamat e-mail pribadi anda.
Pilih kata sandi : masukkan kata sandi (password) anda, sebaiknya gunakan kombinasi angka dan huruf yang tidak mudah ditebak untuk keamanan account anda.
Masukkan ulang kata sandi : masukkan ulang kata sandi anda di atas (harus sama)
Nama depan : masukkan nama depan anda
Nama tengah : masukkan nama tengah anda jika ada tau dikosongkan saja kalau tidak ada
Nama belakang : masukkan nama belakang anda jika ada, atau nama ayah atau nama fam anda jika nama anda hanya terdiri dari satu kata saja.
Tanggal lahir : pilih tanggal-bulan-tahun kelahiran anda.
Kebangsaan : pilih kebangsaan anda (Indonesia).
Baris alamat 1 : isi dengan alamat tempat tinggal anda sesuai di kartu identitas anda
Baris alamat 2 : isi dengan alamat kedua anda jika ada atau dikosongkan saja.
Kota : isi nama kota tempat tinggal anda (misalnya Jakarta, Makassar, dll.)
Negara bagian/Propinsi/Wilayah : isi dengan nama propinsi sesuai alamat anda.
Kode pos : masukkan kode pos alamat tinggal anda.
Nomor telepon : masukkan nomor telepon anda, jangan lupa tambahkan kode negara Indonesia yaitu 62. Contoh no. telepon anda 021-701234567 maka ketik 62-21-701234567. Kalau menggunakan nomor hp misalnya 08123456789 maka ketik 62-8123456789.
 
Di bagian bawah anda diminta menautkan data kartu kredit anda supaya bisa segera dipakai belanja online, silahkan diabaikan saja (jika anda tidak punya kartu kredit) dan jangan lupa menghilangkan tanda centang, lalu anda klik tombol “Saya setuju, buat rekening saya“.
 
4.      Selanjutnya akan terbuka halaman yang tetap meminta data kartu kredit anda seperti pada gambar berikut:
 
Jika anda tidak punya kartu kredit atau punya tapi ragu-ragu untuk memasukkan data kartu kredit anda, silahkan diabaikan aja, anda bisa langsung masuk (login) ke account anda dengan mengklik link “Masuk ke Rekening Saya“.
 
5.      Anda akan menerima email konfirmasi bahwa anda telah mendaftar dan anda harus mengonfirmasi email anda untuk mengaktifkan account PayPal anda. Cek dan buka email dari PayPal tersebut dan klik link konfirmasi yang terdapat di dalamnya untuk konfirmasi bahwa anda adalah pemilik sah dari alamat email tersebut.
 
 
6.      Silahkan klik link “Klik untuk mengaktifkan rekening Anda” lalu akan terbuka jendela situs PayPal lagi yang meminta anda memasukkan kata sandi (password) anda. Masukkan password anda lalu anda klik tombol “Konfirmasi” untuk mengonfirmasikan pendaftaran anda.
 
 
7.      Selanjutnya anda diminta membuat 2 (dua) pertanyaan keamanan yang akan berguna apabila suatu saat anda lupa kata sandi (password) untuk masuk ke account anda seperti pada gambar berikut:
 
Silahkan pilih 2 pertanyaan dan tentukan sendiri jawaban anda. Suatu apabila anda lupa kata sandi maka anda akan ditanyakan kembali tersebut dan anda memberi jawaban sesuai yang anda buat di sini mengakses kembali account PayPal anda. Klik tombol “Kirimkan” mengirimkan pertanyaan keamanan dan jawaban yang telah anda tersebut.
 
8.      Selanjutnya anda akan langsung dibawa masuk ke rekening PayPal anda seperti berikut ini:
 
 
Jika demikian berarti anda telah resmi memiliki rekening PayPal yang bisa anda gunakan untuk transaksi secara online dengan aman. Perhatikan rekening masih dalam status “Belum Diverifikasi” (Unverified). Bila anda belum konfirmasi e-mail anda sebagai rekening PayPal anda, maka anda harus konfirmasikan dulu dengan mengklik link “Confirm email address” seperti pada gambar di atas.
 
Lalu anda akan diminta untuk mengecek e-mail yang dikirimkan oleh PayPal saat pendaftaran anda diterima. Anda bisa klik link yang ada dalam e-mail tersebut, atau anda copy aja kode yang diberikan lalu masukkan ke kotak isian seperti pada gambar berikut lalu klik tombol “Confirm“:
 
More

Cara Membuat Game Sendiri Dengan Unity3D Bagi Pemula


Proses  pembuatan game memerlukan sebuah software/tool yang disebut game engine. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan dibuat. Mulai dari pengaturan game objek dan suara efek, grafik rendering, scripting karakter pemain/musuh, dan sebagainya.

Tahun lalu penulis telah membuat artikel membuat game dengan UDK, sekarang mari kita menggunakan  Salah satu game engine yang sudah banyak digunakan yaitu unity 3D.

Pada sesi awal ini kamu akan diperkenalkan pada fitur-fitur didalam unity3D, dan pada sesi-sesi berikutnya kamu akan mulai belajar membuat games canggih secara setahap demi setahap dengan Unity3D.

Terdapat 2 hal yang bisa kita dapatkan dari UNITY:

1.  Aspek Design : Menggunakan Unity  untuk membangun Level.
Aspek ini tidak termasuk proses desain atau modeling, dikarenakan unity bukan tool untuk mendesain.
Pergunakan 3D editor lain seperti 3dsmax, Maya atau Blender untuk mendesain.

unity_1_h
(Desain Terain untuk level outdoor didalam Unity3D)

2. Aspek Programming: Membuat game dengan Unity.
Unity mempunyai banyak kemampuan untuk menampilkan materi games secara menakjubkan, akan tetapi Unity tidak mempunyai banyak fungsi dan mekanik untuk berinteraksi , kecuali jika kita mulai membuat programmingnya / scripting.

unity_1_i
(Contoh javascript)

Unity 3D atau Unity adalah sebuah game engine yang berbasis cross-platform. Dengan program unity kita bisa membuat game yang dapat dimainkan pada perangkat komputer, ponsel pintar android, web games (memerlukan plugin unity web player), iPhone, PS3, dan bahkan X-BOX.

unity_1_a

Terminologi
Scenes
Pengertian scene didalam Unity3D adalah Levels. Atau area didalam 3D Space yang menampung banyak object games.

Jika kamu membuat beberapa levels didalam games, maka didalam project Unity akan dibagi menjadi beberapa Scenes.

unity_1_b

(Banyaknya scenes didalam satu project bisa dilihat didalam project windows bagian assets, dimana seperti contoh gambar diatas hanya terdapat 1 scene dengan nama ‘mymarble’ dengan isi komponen didalamnya di perlihatkan dalam hierarchy window).
Scenes tidak hanya digunakan untuk level tapi juga bisa dibuat sebagai Opening Screen, Menu Configuration.

Packages
packages bisa diibaratkan seperti compress file seperti Zip atau Rar, nah di dalam Unity packages bisa menggabungkan semua materi games baik itu berupa file ataupun foldernya dan digabungkan menjadi satu. Kamu juga bisa memberikan packages tersebut ke rekan satu team kamu.
Packages ataupun kumpulan asset bisa kamu download di Unity3D.com sebagai kebutuhan pelengkap games kamu.

unity_1_c

(Gambar diatas  adalah packages yang dinamakan Terrain assets, dimana di dalamnya terdapat aset aset terrain yang bisa kamu download gratis, ada juga beberapa packages yang berbayar)
Selesai mendownload kamu bisa mengimport kedalam Unity dengan cara mengklik menu Asset dan mengimport package.

Selain itu juga kamu bisa mengexport materi games untuk dijadikan packages, dengan cara memilih terlebih dahulu folder materi yang ada didalam project window dan memilih menu Assets>Export Package.

unity_1_d

Unity mempunyai kecanggihan dalam mengatur Dependencis (ketergantungan / link) dalam setiap mater yang akan dimasukan kedalam packages, misalkan  ada karakter didalam asset kamu maka semua yang menjadi pelengkap karakter tersebut akan dimasukan kedalam package sesuai dependencies nya.

Prefabs
Prefabs bisa dibilang sebagai kontainer atau sebagai salah satu cara untuk membuat group asset dan dijadikan template untuk digunakan berkali-kali didalam project. Prefabs bisa juga dibilang symbol  (flash),
tidak hanya materi level design saja yang bisa dijadikan prefab, tapi juga gabungan script bisa dijadikan prefab.

Pembuatan prefab yang  diambil dari gambungan materi didalam hierarchy, biasanya di awal menggunakan tools yang dinamakan gameObject, disini kita menggunakan gameObject yang kosong (empty).

Pertama kita buat empty gameObject dengan kunci CTRL+SHIFT+N, lalu drag dan masukan materi-materi tersebut kedalam game object yang kosong. berikutnya didalam project window create, kamu buat prefab baru dan drag game object tersebut kedalam prefab.  prefab yang baru sekarang berisikan gameobject yang didalamnya terdapat mater-materi yang kamu pilih, selanjutnya kamu bisa menggunakan prefab tersebut berkali kali di dalam project.

unity_1_e

Nah didalam inspector window kamu bisa melihat pilihan prefab yaitu Apply (merubah salah satu item didalam prefab lalu membuat master prefab juga mengikuti erubahan yang kamu lakukan), Revert (mengembalikan seperti semula perubahan yang kamu lakukan di dalam prefab).

Game Objects
Game object adalah segala keperluan kamu dalam membangun sebuah level games.
ciri-ciri Game Object :
  • Bisa di Pindah(Move),  Putar(Rotated), besar kecilkan(Scale).
  • Bisa diberikan nama
  • Mempunyai sifat Hierarchy, Link.
  • Dan bisa didefinisikan melalui komponent.

Sebagai contoh, jika kita membuat game object kosong (CTRL+SHIFT+N) dan gameobject ‘Cube’. Kamu bisa lihat di window inspector, perbedaan isi dari kedua gameobject tersebut.
unity_1_f

Untuk transform (move rotation, scale) keduanya sama, tetapi pada gamobject cube terdapat 3 buah komponent tambahan berupa ‘mesh filter’, box collider dan meshrenderer.
Di dalam game object yang kosong juga bisa kamu tambahkan komponent seperti cube dengan menekan tombol ‘Add Component’.

Component
unity_1_g

Component adalah group dari suatu fungsi yang berisikan parameter-parameter yang mendefinisikan seperti apa bentuk ataupun sifat dari game object. dengan kata lain component mendefinisikan game object.
Kadang untuk menciptakan satu game object yang sesuai dengan kebutuhan, kita memerlukan beberapa komponent didalamnya yang bisa kita masukan dari menu ‘Components’.
jika kamu perhatikan pada menu GameObject>Create Other dan juga pada window hierarchy>Create mempunyai menu yang sama. semuanya itu merupakan suatu Empty game Object’ yang ditambahkan beberapa komponent didalamnya.
Sebagai contoh,  jika kamu membuat light dari “GameObject>Create Other>Directional Light” itu sama saja dengan kamu membuat empty gameobject
dengan tambahan ‘Component >Rendering >Light”, tinggal dirubah type lightnya menjadi directional. Pointnya disini sesuatu yang membedakan game object adalah component yang ada di dalamnya.

Assets
asset adalah aspek dari permainan yang akan direferensikan oleh beberapa komponen atau asset itu sendiri , atau kelengkapan penunjang pembuatan game.
Asset dibagi 2, yaitu External dan Internal.
untuk external (mengimport semua kebutuhan untuk pembuatan games yang mencakup) :
  • 3D Models
  • Textures
  • Sound effects
  • Script
Internal  (sudah ada didalam Unity) :
  • Materials
  • Shaders
  • Cube Maps
  • Physics Materials
  • Prefabs

Script
Pengertian yang harus diluruskan disini adalah , Script bukan sebuah program karena program adalah sesuatu yang berdiri sendiri (stand alone), bisa kamu compile dan dijadikan exe.
Sedangkan script hanya berfungsi mengikuti aplikasi yang membawanya, dalam kasus ini adalah UNITY. jadi script di dalam Unity tidak bisa kamu bawa ke program lain selain Unity.
Script didalam Unity harus kamu buat untuk bisa menciptakan games yang bisa dimainkan,  memang unity mempunyai tools yang mengagumkan untuk membuat suatu proses development games, tetapi unity tidak mempunyai komponent untuk menembak misalkan, komponent Ammo atau peluru, Komponen Health (Nyawa)., semuanya itu harus kamu buat scriptnya untuk disambungkan ke component atau ke game object.

Fitur Unity 3D
Di bawah ini terdapat beberapa fitur unity untuk menambah kecanggihan dari level game yang kita buat untuk Unity :
  • Audio reverb zone
unity_1_j

Fitur yang membuat sebuah lokasi suara atau area suara dalam game untuk mengeluarkan efek suara tergantung dari jarak yang ditentukan, sehingga disini pada suatu area tertentu, pemain akan merasakan suara yang berbeda-beda pada setiap area.
  • SkyBox
Fitur yang dapat merubah langit  game.

unity_1_k
  • Particle system
particleSystem

Fitur membuat efek atmosfer seperti asap, api, uapan air, dan sebagainya.
  • Real-time lighting dan texturing
unity_1_l
  • Fleksibel dalam Move, Rotate dan Scale
unity_1_m

Demikian beberapa fitur dan pengenalan program engine yang cukup populer yaitu Unity3D
Kamu dapat mengikuti  video tutorial berserinya di Cara membuat game Unity3D Part I
Sampai bertemu lagi di sesi-sesi berikutnya.
More

Israel Persiapkan Tank ke Perbatasan Gaza


Mengerahkan sejumlah tank ke wilayah perbatasan Gaza. Menyusul rencana Israel melakukan serangan darat ke wilayah Gaza apabila memang diperlukan.

Mengutip dari ITV, Kamis (10/7/2014), Juru Bicara Militer Israel Letnan Kolonel Peter Lerner mengatakan, sekira  20.000 personel untuk operasi serangan darat untuk ke Gaza sudah dikerahkan.

Tidak hanya tank, Perdana Menteri Israel Benjamin Netanyahu juga  mengatakan bahwa sekira 40 ribu pasukannya sudah bersiaga untuk kemungkinan Israel melancarkan serangan darat.

Prseiden Israel Shimon Peres meyakini bahwa serangan darat akan terjadi dalam waktu dekat, kecuali pihak Hamas mau berhenti melepaskan serangan roket ke Israel.

Seperti diketahui saat ini, pejuang Hamas masih terus menembakkan roket ke wilayah Tel Aviv. Serangan tersebut juga langsung dibalas oleh Israel dengan membombardir wilayah Gaza.

Sebelumnya, serangan yang dilancarkan oleh Israel ini juga sudah mendapatkan dukungan dari Pihak Gedung Putih. Menurut pihak dari Gedung Putih serangan udara Israel merupakan bentuk bela diri dari serangan roket Hamas.

Sekadar informasi, akibat serangan yang dilancarkan tersebut sekira 75 orang dilaporkan tewas dalam gempuran yang dilakukan oleh Israel.(ang) (rhs)

Sumber: Okezone.com
More

Berlaga di Final, Jerman dan Argentina Disponsori Adidas

Penyerng Timnas Jerman Thomas Mueller berpose di Erasmia, pusat latihan Jerman di PD 2010, sebelum menghadapi Argentina di perempat final pada 3 Juli 2010 di Cape Town. AFP PHOTO/JOHN MACDOUGALL

Setelah Jerman berhasil menekuk Brasil dengan skor telak 7-1, dini hari tadi giliran Argentina mengakhiri mimpi Belanda untuk melaju ke babak final Piala Dunia 2014. Uniknya, kedua tim ini berlaga dengan disponsori Adidas, perusahaan olahraga raksasa yang bertarung sengit dengan Nike di ajang sepakbola bergengsi tersebut.

Mengutip laman Bloomberg, Jumat (11/7/2014), dengan begitu, sebagai pemasok seragam tim nasional, artinya Adidas keluar sebagai penemang dan menaklukan Nike. Argentina yang disponsori Adidas menaklukkan tim nasional Belanda yang seragamnya disponsori Nike lewat tendangan penalti.
Dalam laga final nanti, Argentina akan berhadapan dengan Jerman. Sebelumnya, Jerman yang berseragam Adidas juga berhasil menaklukan Brasil yang disponsori Nike.

Selama Piala Dunia berlangsung, Nike yang merupakan pemasok perlengkapan olahraga terbesar dunia serta pesaingnya, Adidas telah meraup untung hingga miliaran dolar. Para pembeli yang mengandrungi sepak bola membeli jersey, sepatu dan perlengkapan olahraga lainnya.
"Mensponsori dua tim yang berlaga di final merupakan bonus besar bagi merek perusahaan olahraga tersebut," ungkap CEP perusahaan iklan GroupM, John Kristic.

Dia mengatakan, akan terjadi peningkatan pembelian besar-besaran bagi Adidas karena kedua tim menggunakan jersey-nya. Siapapun yang menang dan kalah, produk-produk Adidas akan tetap mengalami peningkatan yang sangat pesat.

Pada perdagangan hari ini, saham Adidas meningkat hingga 0,8 persen. Perusahaan mengungkapkan, Adidas akan mengeruk untung hingga lebih dari 2 miliar euro pada 2014.
Perusahaan juga memperkirakan dapat menjual lebih dari 8 juta replika jersey World Cup termasuk 2 juta diantaranya merupakan kaos timnas Jerman. (Sis/Ahm)
(Agustina Melani)

Sumber: Liputan6.com
More

Jerman vs Argentina di Final, Prediksi Cortana Masih Tanpa Cela!

Belanda harus mengubur mimpi mereka melaju ke final Piala Dunia 2014. Langkah De Oranje terhenti di semifinal setelah kalah adu penalti 2-4 dari Argentina.

Sungguh luar biasa. Fitur asisten pribadi digital Cortana beberapa waktu belakangan ini menjadi sorotan dunia karena secara tiba-tiba menjelma menjadi ahli prediksi pertandingan sepakbola.

Torehan keabsahan prediksinya pun tak perlu diragukan. Cortana menebak 13 hasil pertandingan di Piala Dunia 2014  -- dimulai dari babak 16 besar -- dan seluruhnya tepat. Tanpa cela!

Terkini, prediksi fitur canggih di sistem operasi Windows Phone 8.1 itu kembali terwujud ketika Argentina sukses mengungguli Belanda di pertandingan semi final kedua yang berlangsung Kamis dini hari, (10/7/2014).



Dengan begitu, prediksi Cortana yang meyakini Jerman vs Argentina akan menjadi partai puncak di final Piala Dunia tahun ini terbukti tepat.

Kemampuan istimewa yang dimiliki Cortana ini didukung sebuah teknologi anyar Microsoft yang disebut Bing Prediction Engine. Dengan bantuan mesin pencari Bing, Cortana mampu mengkalkulasi kemungkinan pemenang pertandingan berdasarkan rekor pertandingan sebelumnya pada masing-masing tim, faktor cuaca, jenis rumput, dan berbagai faktor lainnya.

Sangat menarik menunggu prediksi juara Piala Dunia tahun ini versi Cortana. Menurut yang dilansir laman The Verge, perkiraan hasil pertandingan Cortana kini bahkan kerap dijadikan acuan bagi para petaruh.

Sumber: Liputan6.com
More
Daniels Putra. Diberdayakan oleh Blogger.
 

Recent Posts Blog Partner

Recent Movies

Recent Comments

Apa Kata Mereka

Copyright © 2010- | Design Modification by : DanielsPutra | Best Template 2015. All Right Reserved.
Hak Cipta © Seluruh informasi, tips, trik, tutorial dan template dilindungi Undang-Undang. Plagiat tanpa mencantumkan sumber atau menghapus nama saya dibagian credit template hasil karya saya, maka saya tidak segan-segan untuk menegur atau memposting Website tersebut secara permanen. Salam Blogger Indonesia.

error: Content is protected !!