Here is a fourth, namely from QNAP, the QNAP TS-210 Turbo NAS. If seen from the form of its product, which is owned impressed simple design, still the same as most home-based NAS for SOHO nd. External features on offer is also limited, like One touch copy button (1) and a variety of LEDs that represent their respective functions (2) you may encounter with the front, besides of course the power button (3). At the rear, you'll find the standard diameter fan (4), two USB ports (5), and port RJ-45 (6), which already supports Giga LAN.

This product is on strengthening the integrated processor with a clock of 800 MHz and DDR2 RAM at 256 MB. Of course, this becomes the value of rest. Even when we melekukan testing, the results are remarkable in our opinion. Both in terms of performance, overall assessment and comparison of the performance / price. This product exceeds other products. So it is not wrong, if we are pinning the award logo as well as to three of these products, namely Best Product, Best Buy, and Best Performance.

Although there is still a little imperfection on these products, such as hard disk installation process somewhat complicated and product prices are quite expensive because it is not included with his hard drive. Namum, still we say congratulations on the success!


Entering the second sequel to Just Cause 2 still tells the football lunge Rico Rodriguez, an agent from sheep to American intelligence field, The Agency. Rico this time assigned to an archipelagic state in southeast asia named Panau. His job was to find Tom Sheldon, friend and teacher who was reported missing. But in pencarianya in Panau, Rico actually required to create chaos for the sake of dropping yag dictatorship regime in power. For this purpose, Rico must be willing to work with three criminal groups there.

The meaning seems to create chaos explicitly defined by the Avalanche as a ruin. This is at least drawn from a very large portion of the blasting various objects in many ways. Diledakan Whatever, this game mengambarkannya quite spectacular.

However, the most interesting side of the Just Cause 2 is perhaps the State picture Panau. Exotic environment out here really explored. With beautiful graphics quality, Panau Island as if made to pamper the eyes. Moreover, with the ability Rico in this game has a unique weapon in the form of grappling hook and a special parachute. With both these objects, Rico is able to swing antargedung or even jump from a high cliff without falling and killing is concerned. Grapling his hook can also be used as a weapon, to mejerat opponent and drag him to the vehicle or just a passing helicopter ride!

Rico actions that outsiders can be, supported also by non-linear gameplay ynag. In this game, you could complete the mission in ways that could occur to you. Avalanche Studios is giving a lot of freedom role in Just Cause 2. For example, the game is said to have no fewer than a hundred that could be used kendaranan Rico. Not to mention the existence of various weapons. Unfortunately, this game also has some weaknesses. Application of check points that rather rarely makes the mission difficult to get more difficult and potentially frustrating. However, the main weakness of this game is he does not support Windows XP. Or perhaps it is precisely the right time to switch to Windows Vista or even Windows 7 ?


This article is a continuation of the two articles on making Java game before. In this article, the author will discuss more about the concept of game programming using java.

Lots of interesting articles that are published on the website forum develover games like www.gamedev.net or www.javagaming.org. start from the basic game programming concepts to complex programming sebenarnyamalah porses simplify manufacture. Indeed, in programming, not only in games programming, design becomes the main foundation for making process does not come out of the main objectives. You can choose whichever method of suitable design for you. However, in this article the author would not discuss the issue. We return to the basic concepts of programming in java gaming.

After learning how to use java to make a simple 2D game, this time the author will present advanced concepts for a game. To further simplify, the author uses source code that has been made in the previous article, which can also be downloaded on the blog writer, http "/ / www.fauzihaqqi.net.


Part that almost always there in a game is a sprite. The word sprite has multiple meanings in game programming. which means that there is a set of sprite images or animations that united in a larger gambaryang. Others say that the sprite is a term used to encapsulate a character in the game. a more general, and the sprite is defined as any object that has the location, pictures, and usually can be moved.

But in this article, sprite more emphasis on the encapsulation of an object in the game, whether the object moves or tidak.Bahkan itudapat a button "New Game" in the game menu could also be considered as a sprite, jikamemangmemiliki location and other attributes.

Try to think back a bit, what are the objects that must be defined in your game. A simple example of this snake game, there must be at least gamepanel for game area, snake to the representation of a snake, and apple to apple representation.

Gamepanel and snake we've created in the previous article. The rest, you just create a sprite apple that will form the food of the snake.

Simple, right? which pperlu you do just think in a structured starting from scratch. sprite design whatever is needed for your game. attributes and capabilities needed any sprite. Like for example, the snake must have the ability to migrate. different from the apple that exist only in one place for every apple-nya.Yang need to really think about is all the things that concerns only the sprites, the sprite must be done by itself. One example is the rendering. Each sprite should be able to draw himself, although nantinaymemakai Graphics2D object from its container. This is in accordance with OOP programming concept that is suitable for making games.

Collision Detection

The next basic thing in programming games is a collision detection (collision). The definition of collision here is not what happens if there is an accident. But the collision detection here is how to determine if an object is being cut (intercept) of other objects in the game.

There are many techniques and algorithms to detect whether the collision occurred or not. This collision is most easily detect if your game bettipe tile-based. Thus, all you have to do is check every tile of your game. The most serious incident, you should check that in fact the whole tile is smaller in number than the pixel size of these games. Thus, the computer will not take too long to detect it.

Unlike pixel-based collision detection him, indeed our eyes can easily detect whether an object is star-shaped star collided with another at the end. But it's not easy enough for a computer. If the algorithm you use is not efficient then the computer will be forced to check the entire pixel, until finally discovered that the collision occurred. this can reduce the performance of your artificial game.

In the example in the previous article, there is no collision detection between the snake with the edge of the area gamepanel. So if the snake up on the edge, he'll keep walking and disappear into the area outside the range. This should not be terjadi.Karena this snake game is a tile-based games. You only need to check whether the head of the snake out of the arena. Collision detection should be carried out section that holds the second largest object to be detected. In this case, means you have to detect it on gamepanel.

Sample source code simple. You can add the method below to the class Gamepanel:
... ...
not only the collision between a snake with the edge of the arena, but need also captured whether a snake's head was hit the apple, which means that the snake has eaten. You simply add a simple line below:
... ....
CreateNewApple method () will create a new apple somewhere random. While the method addBody () on the snake will add a body length of the snake. It will not be described in detail in this article, but you can learn more at an existing full souce code diblog author.
For the class first person shooter games like Counter Strike has been using collision detection based on pixel. It is not easy to do, especially for three-dimensional game. Slah one simple way is to define the boundary (boundaries) of the object to be in check. So, they only need to check each object edge pixel. Then, how to detect the edge of the object with the program? That is your challenge as a programmer.


Background (background), including things that are important in game development. A good background will be able to define trembling well too. There is background only serves as a complement to, but there is also a character as an object of the game. There is a static background, there also may be engaged.

An interesting trick that gives the impression that kerakter move is by moving the background. You may see the classic Mario Bros. game. When Mario runs, Mario is not really moving on the screen, but the background is moving against the direction, so it would seem that directly mariolah're moving forward.

In rendering the concept, background is the first object to be rendered on the screen. It was clear that the goal is to not cover the background characters that will direndersesudahnya.
In tile-based games like Final Fantasy Tactic, Romance of the Three Kingdom, as well as the usual game two dimension of this snake, the background is not included in the large size, but dipecahmenjadi small sizes. Then the loop will be done to render background images.

Typically, image files and the file mapping information terletakterpisah background. It is intended to avoid redundancy between the image file that stu tile with another tile if you use the same file. Enough background mapping information stored in the form of text to index every file of the drawing.

However, there is also a background that is stored in large sizes, usually only once or indeed digunakn unnecessary surgery on the background. Typically, this type of background articles used to make the game start menu.

Background in the example source code consists of a writer only fil; e image size 10 x 10 pixels which will render the loop so that all plots have the same background.

State Game

Situation (state) of the game must be kept properly. The most simple things of this state is whether the game is running, pause it or are already game over. This is very influential on the game you made. Render the information in the game will also vary depending on the state's happening. For example, when you play Warcraft, if the tone of pressing the F10, by default the game will stop (pause), and the menu will be displayed.

Another example of state that is your destination information that are superior players at that time. For example in fighthing game, win-lose position each player is also stored.
Game state can be global or local according to each object. One example of a global state is a condition in Game Counter-Strike game, how many times terrorists win and how often do Counter Terrorist win. While the example is whether a local state of each player is still alive or already dead shot.

In the example source code provided by the author, can be seen that the state is still simple. State of the game was whether the game is running, pause it or game over. This is so that you can further explore to make the state-state ynag more detail again.

For any game over, the only way the game was when the snake struck his own body. In the game you made, you can add sprites form of a wall that will make the snake die if hit.
To put the interception that state, you can change the thread a little structure on the source code for the previous article, to be like this:
... ....
As is known, to declare a global variable in java, you can use the keyword "static". The aim is that these variables can be accessed by any object, without the need to contruct an object that has the variable. While the konstansta to declare, you can use the keyword "static final" variable so that it can not be modified, but can be accessed by any objeck.

To display information on whether the game is in the running position, pause it or game over, you simply add a few lines on the method paintComponent () senjadi as below:
... ... ..
Thus, updating a snake and collision detection is only done when the game is running. Depictions of information "Paused" or "Game Over" hanay happen, if the state is in progress in accordance with the conditions.

Do not forget to set the keyboard keys used to intercept the event pause. In contoj writer, the game will be paused or running if the player hit the Enter key. You simply turn it on in Game KeyAdapter Panel:
... ...
You can add a simple form of value-state players, that is what apple has been eaten by siular ynag, then displayed on the screen. You simply create a new variabelstatic and add value to it when there is a collision between the head of the snake with an apple.
Note: The author uses Windows 7 and JDK6u17untuk run source code. In the skin of Windows 7 have a nonconformity that causes packing java components leave little blank area and right edge of the section under the window, as shown.

Easier to Game Engine

The main skill a programmer is to copy-paste. When the programmer wants to create a game with a new idea, but with the same structure. Will generally be open long program code, then copy-paste the line that can be used again. If using this method, at least all the lines that became the basic functions of the game to be moved. Imagine, if you haruh carefully sorting lines which can be used again and which ones have to be rewritten, what more if you create a program with a structure that is less tidy. If it is so, like sodium absorption ratio would force spearheading ynag matalah. All the concepts and basic game programming that has been submitted, the author usually has been there in a game engine.

Game Engine is a software that is designed and articles used for the manufacture and development of a good engine game.Game should at least be able to menghendle citation needed-these basic operations. In fact, the existing game engine that provides basic AI (Artificial intelligence), a basic artificial intelligence such as the shortest route search and so forth.
The background of this game engine is very heavy because they to make a game from scratch. Because you have to make all the basic things, like how to display an animation, how to make sound effects and how to detect collisions. Though the process is usually almost the same in all games.

Thus, they invented a library that includes all the basic game development so that these libraries can be reused by programmers all want to make a new game, without starting from scratch. Or in other words is a copy-paste and unloading pairs.

Any type of game engine range. Some only provide the basic components, there are already providing a special class game with a certain genre, and even have a GUI that exists at making games look pretty doing drag and drop only.

Here is a list of Java game engine that you could try, and its official Web site address:
• A Menkey Engine (www.jmonkey-engine.com)
• Golden T Game Engine (www.goldenstudios.od.id) - game engine made in Indonesia
• JGame (www.13thmonkey.org/ ~ Boris / igame /)
• Slick (http://slick.cokeandcode.com/).
• LWJGL (http://www.lwjgl.org/).

Every game engine has its own cirikhas and methods. Game engines are also different levels, there are only providing basic methods, there ynag two-dimensional and there is even a three-dimensional. All of the above game engine is open source. You just try it, and choose which is appropriate for you. Deepen your skills with a selected game engine.

If you want to and intend to dive in the world of game programming, you'll want to make the game engine itself. This game engine that you use as needed, nothing less and nothing more. Learn how the concept of the structure of an existing game engine, how the active process of rendering it, how the main methods. For convenience, look for open source game engine with the same language, then copy-paste the code you need. However, do not forget to continue to respect the source code license.

Welcome to make games.

Reserving With OllyDbg


Like a time machine, reversing the process of trying to uncover what lies behind the creation of a program.

We get an application form of executable files, meaning you telahmendapatkan result of work of an individual or a team of developers, who build the applications from a series of codes program.Dengan just run the application, you will find it hard to know with accuracy and detail, about what actually serve targeted applications. Except if you have the source code before compiling the application on, or do the reverse code engineering (RCE).

Low Level Software

Computers and software layer built from different layers. Akstrem comparison is to look at the outer layer, ie graphical display desktop pad, while the innermost layer is the millions of transistors on the CPU. on programming languages, is the lowest level assembly language. Opersasi anything done a software can be seen in assembly code. To understand the RCE with a good, low-level must be understood first.

Therefore, we will look at the process from the lowest level, when an executable file is run. CPU will work with membacasekumpulan bit contains a set of instructions. This form of machine code instructions (machine code, or often called a binary code), which you can see when you open the file in a HEX editor.

Assembly language represents a collection of bits in the form of human readable text. so, rather than seeing a row of hexadecimal digits, it would be easier for you to read the text instructions such as MOV (Move), XCHG (Exchange), and so on.


RCE general understanding is a process on an object to know deconstruction details. In connection with computer software, reverse engineering software mendekontruksi, it returns to the analysis process by:

1. Analisismelalui observation of exchange of information, such as taking the data traffic on a computer network tertentu.pengamatan generated by the software is expected to represent the behavior of software used tersebut.Tool include a bus analyzer or packet sniffers. Generally, this method is used to perform a reversing device drivers on embedded systems.

2. Decompile, by Decompiler. Decompiler attempted reinventing the source code in a high-level programming (eg Visual Basic, FoxPro) from the machine code. The success of decompilation process depends on how much information tekandung in the code that has been compiled, and how well the level of analysis used Decompiler. If there are metadata or debug data on the machine code will simplify the process of decompilation.

3. Through the process of disassembly, using Disassembler tool. That is, translating the machine code into assembly language. Disassembler tool, such as IDA Pro, ILDASM, PVDasm, and that will be the topic of this article, namely OllyDbg.

Pros and cons reversing habisnyakarena probably will not be there always can be seen from two viewpoints. For example, perhaps reversing regarded as a savior if used for purposes of analysis applications suspected of harming a time bomb, but reviled when it was used for the cracking process, such as making modifications to a trial period for paid applications are ignored.

For things that are positive, reversing usability are:

1. Found the malicious code. For example Pasa applications suspected of violating the provisions of the secret code, like a time bomb that could disrupt the company's operational processes.

2. Find the error code. Say an application no longer has the cource code for or in another, but it has a bug that mengganggu.Proses reversing can help find these errors.

3. Find the usefulness of the code. There are certain cases dimanaanda workings require an application in detail, perhaps to understand the logic and flow, which is not obtainable because of the unavailability of source code.

4. Analyze the workings of malware. Several techniques and reversing the damaging effects malwarememerlukan process, so that action can be taken and appropriate response.


OllyDbg is a tool Disassembler / debugger for windows operating system. its creator is by Yuschuk or known by Olly. OllyDbg is one of the favorite tool of many used by people who wrestled on the http://www.ollydbg.de RCE.Beralamatkan world, until this article was written after reaching version 2.0, written ualng from scratch and does not yet support the use of plugins like the previous version . however, you can still download the old version which has implemented the use of plugins, or you can get the DVD of PC Media edition.

OllyDbg is a shareware, but the author did not request a fee for commercial use or permanent. Simply fill out the registration form and send via e-mail.
Some of the features and usability OllyDbg is:

1. Can recognize the procedure, API calls, and most of the function C.
2. Find Feature Reference for memory and string.
3. Able to debug the DLL file.
4. Every program that is running can be summoned and to debug.
5. And there are many 3rd party plugins (not currently supported by OllyDbg version 2.0).
6. Be updated and patched.

OllyDbg is one of convenience does not require installation. you simply download, unpack, and run it. Example 2.0 OllyDbg display shown in the pictures.

For the first time using OllyDbg and try to open an executable file, it may display a screen that looks pretty "scary". do not worry, note the red numbers (numbers 1 to 8) at each window OllyDbg a picture id. explanation of each window is represented figures are as follows:

1. The first column of the main screen contains the address or offset.
2. This column is the opcode, as shown you're open filemelalui HEX editor. Some symbols may be found at the beginning of the opcode, for example, the symbol ^ (or v) that shows the code jumps to the top or bottom. The jump instruction will be discussed later. , yang menunjukan kode jump ke lokasi spesifik.Kemudian juga ada simbol $, yang mengindikasikan awal function." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'">Another symbol is>, which shows the code jumps to the location spesifik.Kemudian there is also the symbol $, which indicates the beginning of function.
3. Text that represents the opcode, instruction-intruksidalam contains assembly language.
4. Is the space to make comments, whether comments are generated by OllyDbg araupun written by users (with a right click, select "add comment ...."). ASCll text referenced by the opcode is also shown in this section.
5. This section shows information about the instructions being to debug. Say if you have come to the command "MOVEBP, ESP" then this section will include content from the EBP and ESP. Also indicates whether a jump condition will be executed or not (jump is taken / jump is not taken).
6. This window shows the register information such as Standard registers, flag registers, segment registers, or registers debug/FPU/MMX/3DNow. The content of this register can be capricious, when you debug the code step by step.
7. ASCII atau Unicode )." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'">is an area of memory addresses tertentu.anda dump can change the appearance of this area, such as ASCII text / Unicode (right click on your area, select the text-> ASCII or Unicode). Or even do Disassembler in this area (right click, Disassembler).
8. Is a window that displays information on the stack.

Still, there are several other windows that can be accessed via the toolbar menu (the log window, memory map window, the CPU window, and so on).

For example, Alt + E will open a window executeble modules.
You can also change the values that appear for instance in the window register, the contents of the register can be changed by right-clicking the register value and select Modify (or double-click that value).

Important Shortcut

One of the main functions OllyDbg is a debugger, there are shortcuts to the shortcut that can simplify the job. For those of you who have been accustomed to using high level programming languages such as Visual Basic / Delphi, would also never use the same debugging features.
For debugging or executing code per line in OllyDbg, you can use the shortcut F7 (Step Into), or the F8 (step over), and be careful in debug malware because F9 shortcut will run the application (Run). To restart (start again from the beginning of the program), use the shortcut Ctrl + F2. Another important shortcut to debug is to create or mebghapus F2 breakpoint. You can make more than one breakpoint.

Basic Assembly

Because OllyDbg translate into machine code assembly language then we must understand the basics of assembly language. could even be said, this is the core using OllyDbg.Semakin much you know about the assembly, the easier you memahamiaalur courses that appear on OllyDbg, coupled with features that simplify the process of reversing OllyDbg.

Discusses in detail the assembly language can be a separate topic that is vast, but here given the basic concept that you do not look too upset with OllyDbg. At the assembly, we will banayak associated with the register. Storage registers on the CPU is the fastest access. Example 32-bit registers for general purposes (arithmetic operations, indicates the offset address), among others, are EAX, EBX, ecx. Another example is a segment register (SS) is paired with a stack pointer register (SP). The contents of registers accessible through the assembly instructions, including MOV (Move), PUSH, POP, CMP (Compare), INC (Increase) and so on.

For example, the command MOV EAX, 0 means to fill in the EAX register with a value of 0.
In doing debugging with OllyDbg, you will find a lot of the jump command, used to jump to specific areas of program.Terdapat many orders jump, jump without conditions with JMP apapunditulis followed by a goal, for example:

7C901011 JMP
Each command will be executed JMPyang encountered. There is also a jump command that has the condition, which is assessed through the CMP command, TEST, or other commands. Some examples of the jump command that will evaluate the previous command is JA (Jump if Above), JNE (Jump if Not Equal), JL (Jump if Less), and many lagi.Terlihat complicated? Actually not really because each of these commands has a catchy acronym, namely:

J = Jump
E = Equal
N = Not
S = Sign
Z = Zero
P = Parity
O = Overflow
C = Carry
G = Greater Than
A = Above
L = Less
B = Below

CMP Printah ecx, 0FFFF will compare operand1 and operand2, followed by JBE orders are fulfilled. See the table above are obtained JBE Jump if Below Equal means, or if operand1 <= operand2 (operand1 if below or equal to operand2). Opening and bereksperimendengan some files contohakan make your environment OllyDbg.Pada terbiasabekerja on the next article, will dibahaas more in-depth example of using OllyDbg again.