Charles Basics – Beginner’s tutorial

posted in: Other | 0

First Steps / Basic Knowledge

Charles is no Cheat Tool. It is a Web Debugging Proxy, used to develop all kinds of applications. Using testversion is fine, it only comes with some nag screens.

Get it here: http://www.charlesproxy.com/

Installation: Make sure you also install the Charles-Addon in Firefox if asked to and enable Charles in your browser. Also see Tutorial to setup Charles to log https.

Important: You will always have Charles started AND your game in browser. Charles will log all actions you do ingame when it’s running parallel to your game.

To work with Charles you need to understand what requests and responses are. Charles will log all communication (= traffic) between your browser and the game servers. It works like this:

Now Charles, sitting in between, not only logs & displays all requests/responses, but also allows you to edit them. Mostly you will try to alter the request, not the response (this is done too, now and then – but this only works if another request is sent to the server after that, to save your edit on server).


Charles’ Interface

Open Charles, open your game parallel, do something ingame.

The window to the left displays your current Session (you will rarely have more than one Session). The blue folders (urls) contain all the traffic Charles currently logs. Open them to get to the important requests. In FV you will need to go to: Z* server (fv-zprod-tc-x.farmville.com) >> flashservices >> gateway.php. See advanced tutorial to tidy up this screen.

The window to the right displays details on your requests and responses, like a specific action. Click any url to the left to display it’s details to the right. Then choose tab “Request” (or “Response”, depending on what you want to see) and at bottom tab “amf” (for fv; see red arrows in screenshot).


Using Charles’ Buttons

Now we take a look at these buttons on top which you will need most often:

1) The dustbin clears all logged activity in your current Session.

2) Turn logging on/off. Logging will slow down your game alot. So it’s useful to turn it off if you temporarily don’t need a log, but just want to do few things ingame faster, then turn in on to log again. No need to close and open Charles all the time.

3) Enable/Disable Breakpoints. For most glitches this is the most important button! Like shown above, Charles sits in between your browser and the game servers. With turning on breakpoint you stop communication for a while, not letting a request through to the servers (and as well not letting any response of the server through to your browser).
At the very first time you have to tell Charles what exactly to breakpoint. Rightclick on gateway.php, check breakpoints here (1):

3_charles-basic-menu

Charles will remember your choice, from now on you will just hit the red button to enable/disable breakpoints. See example below on how to proceed.

4) Edit requests and then send them again to server. Only needed for games like Astro Garden where you are able to repeat OLD requests or send your (edited) OLD requests again. More convenient than breakpoints because you have all the time in the world to edit…
Screenshot (2): To repeat old requests without altering them rightclick on the request and choose Repeat (to repeat once) or Repeat Advanced (to repeat one request more than once or more requests at once).


Method Basics – Breakpointing and altering a request

Most methods require you to start Charles, load your game, turn on breakpoints in Charles, then do an action ingame, like harvesting a baby sea turtle:

4_pic-result

You will have Charles “popping up” automatically when breakpoints are activated. Click “edit request”, choose tab AMF (bottom), open the blue folders to find your action like here:

5_charles-params

Edit it according to whatever method you use, then hit execute to send it to server:

6_charles-cancel-execute

For a start, doubleclick on turtle_baby_sea (or whatever animal you harvested) and try changing it to another animal’s code on your farm (for codes see for example on fvitems.com). This little glitch will allow to harvest that animals several times, even if not ripe yet. It will /not/ give you additional mastery points, but will count for quests which require to harvest a certain animal several times.
You need to be very quick with your edits, else the request expires and the browser will try to send a new one! So this needs some practice.

Hints

  • You can turn off breakpoints again right after you got the popup or after finishing your edit. I usually do before I hit execute. Then all following requests/responses go through without having to hit execute several times.
  • If you got too many popups, not able to finish your edit, check if you a) log too many folders (see tutorial to reduce these) and b) set breakpoint on too many requests, like on whole folder instead of gateway.php only.
  • It is always a good idea to check the response after you edited a request (choose the tab response, then amf again) – it will tell you an error or an ok/success, depending on what the server thinks of it .

Sounds complicated? It’s not if you get used to it. Best is to just try around and you will see…