RiPE Guide
RiPE Guide
RiPE Guide
RiPE
Official Guide
Table of Contents:
Injecting RiPE.................2
Selecting a Game.............2
Logging Packets...............3
Sending Packets...............3-4
Dynamic Packets..............5
Packet Blocking...............6
Packet Modification........6
Opcode Labeling..............7
Introduction to RiPEST...7
RiPEST Database.............8
Further Reading................8
RiPE 2
Injecting RiPE:
If you are using RiPE Launcher:
Select the game or process that you want to inject into, and then
click the "Inject" button. RiPE Launcher comes with RiPE. Make sure
that RiPE Launcher is in the same folder / directory as RiPE.dll.
Selecting a Game:
After injecting, you should now see a "Game Selection" dialog.
Select the game that you want to use RiPE for from the left, and the
version from the right. Click on "Continue." You may additionally
"Search for a Plugin" to search the RiPEST plugin database for other
plugins. Plugins appear on the Game Selection menu just like any other
game.
RiPE 3
Logging Packets:
To log packets, simply click "Hook Send" or
"Hook Recv." Hook Send will log packets sent FROM
the client TO the server. Hook Recv will log packets
sent FROM the server TO the client.
You must also make sure that "Enable Logging" is checked for packets to appear. The
difference between Tree and List views is simply the order that packets appear. In a tree view,
packets are ordered first by their header and second by their return address. In a list view,
packets are ordered based on the time that they were logged.
Double-clicking on a packet once it is logged will add it to the "Send Packets" window.
You can clear the logged packets by right-clicking anywhere on RiPE and selecting the
appropriate option from the menu.
Sending Packets:
With the Send Packets window:
Packets are appended to the bottom of the Multi list. If you want to add multiple packets,
then they should be added in the order that they'll be used. Note that order only matters if you
have "Act as Group" enabled.
If "Act as Group" is enabled, then the first packet will be sent after its delay (in the above
screenshot, it would be sent after 1000 milliseconds). The second packet would be sent 123
milliseconds after the first packet was sent.
If "Act as Group" is disabled, packets will be sent based on their own delay, without any
regard for the delay of other packets. In the above example, this would mean that "A0 00" would
be sent every 1000 milliseconds, and the longer packet would be sent every 123 milliseconds.
In order to actually spam packets, you will need to click on "Start Spamming," which will
initiate the sending of the packets in the Multi tab. To stop spamming, click the "Start
Spamming" button again (it should be changed to "Stop Spamming").
You may quickly send (or receive) a packet by double-clicking it in the Multi tab.
If you see a spin control between "Act as Group" and "Start Spamming," then that is the
socket number to use for sending the packets. As of now, this only shows up when "Other" is
selected at the Game Selection dialog.
RiPE 5
Dynamic Packets:
Unknown to many, RiPE supports something known as "dynamic packets." These are
packets that change in a predefined way each time they're sent or received. Although dynamic
packets are evaluated in the "Send Packets" window, they will only work properly in the "Multi"
tab. This is because the "Send Packets" window is stateless.
In the above packets, we see that [10000000, 00000000, 7FFFFFFF, +2???] is the dynamic
portion of this packet. A packet can have as many dynamic portions as needed.
Size of the generated partial packet is determined by the greatest size between the
minimum and the maximum. In the above example, the size would be 4 bytes.
The current section of the dynamic portion can be left out. In this case, the structure
would be: [current/minimum, maximum, expression]. It is recommended to always include the
current section in a dynamic packet for clarity.
Please note that dynamic packets are in big-ENDian. They are one of the only
hexadecimal values that appears as big-ENDian in RiPE. Everything else is lil-ENDian.
RiPE 6
Packet Blocking:
To block a packet in RiPE, there are two tabs that you should take a
look at. The "S - Block" tab is used for blocking and modifying send packets
(from the client to the server). The "R - Block" tab is used for blocking and
modifying receive packets (from the server to the client).
Packet blocking goes from left to right. In the example to the right, a
packet would be blocked if it matches: "0A 00 ?? ?? ?? ?? 12 34 56 78". For
example, the packet "0A 00 11 22 33 44 12 34 56 78 FF A0" would be
blocked. However, the packet "00 0A 11 22 33 44 12 34 56 78 FF A0"
would not be blocked. The packet "0A 00 11 22 33 44" would likewise not
be blocked (too short).
Packet blocking only uses the top textbox in the "S - Block" and "R - Block" tabs. The
bottom textbox is only for packet modification. Ignoring a packet is identical to blocking a
packet.
Packet Modification:
Packet modification is similar to packet blocking in that the top textbox works exactly the
same. Of interest is the bottom textbox. There are a few special characters that work a bit
differently in the modify textbox than in the rest of RiPE:
? The ? means "use whatever was in the original packet". So if I had a packet 0A
00 11 22, and I used "FF 00 DD ??" as the replaced packet, my result would give
me: "FF 00 DD 22".
* The * means "randomize this nibble." It works similarly to * and ? in the rest of
RiPE.
. The . means "keep everything else the same as the original packet." It would be
identical to ending the packet with a bunch of ?? characters. For example, if I
have the packet "0A 00 11 22" and I used "0B.", my resulting packet would be
"0B 00 11 22".
It should be noted that you MUST use the . if you don't want your modified packet to be
abruptly cut off. For example, if I have the packet "0A 00 11 22" and I used "0B ??", my end
result would be "0B 00".
RiPE 7
Opcode Labeling:
Opcode labeling is one of the (unfortunately) widely unused
aspects of RiPE. It allows you to label packets based on their opcode,
or header. For example, I might have send opcode 007F, and I might
name it something like "Drop Money." Now whenever the packet is
logged, it will be something like: "007F - Drop Money" in S - Tree.
To add a new label, simply select the opcode type (Send for S -
Tree, Recv for R - Tree), the opcode (in big-ENDian), and the label that
you want to use.
Once you are done making changes, click "Save". The changes
will take effect immediately, but you may need to clear the S - Tree or R -
Tree tabs if the opcode has already been logged to see the changes.
The labels will be saved to the same file as the rest of the RiPE information, such as the
packets in Multi.
Introduction to RiPEST:
RiPEST is another highly advanced but rarely used feature of RiPE. RiPEST is a
powerful scripting language designed around packets. RiPEST allows you to set up keys for
sending packets or groups of packets. It also allows you to completely change the way that RiPE
functions. You can even make hacks in RiPEST with relative ease.
For in-depth coverage of how to use RiPEST, its functions, and some sample scripts,
check out the RiPEST forums at: http://www.unallied.com/forum/forumdisplay.php?5-RiPE-
Tutorials.
RiPE 8
RiPEST Database:
The RiPEST online database is a
powerful (though still buggy) way of finding
RiPEST scripts and plugins. To begin
searching the database, access it from the
RiPEST Tab by clicking "Find Scripts" or by
clicking "Search for Plugin" from the Game
Selection dialog.
Scripts will appear in the RiPEST tab, and plugins will appear in the Game Select dialog.
Further Reading:
This guide was designed for people who understand the basics of packet editing and
packet terminology. If you are confused, bewildered, baffled, confounded, perplexed, puzzled,
stumped, or in any way lacking the aforementioned skills and knowledge, then I invite you to
read up more on packet editing from the URLs below:
http://www.godevtool.com/GoasmHelp/usbyte.htm
2's complement and signed vs unsigned values (no URL for this one, sorry! If you know of a good one,
let me know).