Jump to content

pearDevourer

Members
  • Posts

    13
  • Joined

  • Last visited

pearDevourer's Achievements

Seeker

Seeker (1/7)

0

Reputation

  1. I think 1x1 may only work with patched swf now (not sure, i always use patched swf), to learn how to patch swf, see faq.
  2. To be perfectly frank: "this has possibility to become solution to your problem" You need to understand that what i presented is just a way to control web traffic. Whether by controlling web trafic you will be able to remove extra plots - i don't know. If you decide to try the tool and come up with any specific issue, maybe i will be able to help. 'how do i do this' is not specific What is specific is copy of packet being sent with eg. question 'why does server respond with failure' - just an example. Edit: to get started with charles: http://www.charlesproxy.com/documentation/getting-started/
  3. Yes and no. run charles proxy, click proxy / breakpoints. In new window select "enable breakpoints", click "add" and in new window: And click ok and again ok. You have just set up breakpoint for all farmville server request and now for each request you are able to choose: accept (lets packet go as it it), abort (stops packet from going to farmville server) and edit (you can change packet and then accept/abort it). That's the 'yes' part. But, to be able to figure which packet to deal with you will just have to click through all you can see in packets and learn what is inside them yourself. That's the 'no' part
  4. v8838 patched for 1x1: http://rapidshare.com/files/312393448/FarmGame.release-09-11-24.8838.swf While 8808 swf is still working, i recommend checking version patched for 1x1 AND having no 'saving dialog please wait', which makes doing all your 1x1 squares a blaze :] http://www.autoitscript.com/forum/index.php?showtopic=98544&view=findpost&p=748288
  5. Actually, if you load farmville from farmville.com, gamesettings.xml is loaded from different address:http://static-www.farmville.com/v8838/gameSettings.xml You need to add fiddler rule. Again, Charles Proxy. Oh, sorry then but you wrote this in a way like you didn't read my post. Read this part again: Also, if i understand right you are absolutely unable to understand actionscript code. In this case im afraid you are out of buissness. Changing game code *is* programming too after all and you need to have some programming knowledge to be able to understand anything.
  6. I really don't know what to tell you, mine gamesettings file works. Maybe try getting updated one and clearing cache? sometimes cache takes some time to clear. Dude couple of posts above you have long ass post by me explaining how to do this...
  7. No, there is not yet way to bypass code2 error, but TimeHorse is working on it. Also, i managed to disable 'saving your farm' dialog which was getting really annoying with zero fuel and huge machine grids: http://rapidshare.com/files/312137819/NoSavingDialogFarmGame.release-09-11-24.8808.swf This doesn't mean you can click to harvest/plow/seed all and close browser and it will be saved, you still need to wait rather long time for all to save, but the difference is that you can turn short clicking and short waiting periods into one clicking and one long waiting period. Enjoy! What do you mean?
  8. Yes, i thought about that, but to make delete tool bigger through client is super hard at best (if possible at all). I think it would be much, much easier to just use debug proxy do send delete packets. Especially with request AMF view!
  9. 8808 patched for 1x1: http://rapidshare.com/files/311987580/FarmGame.release-09-11-24.8808.swf
  10. Guys! A thought how to disable that error so that you can enter farm and remove plots - use some kind of firewall or proxy tool which would allow to view incoming packets and block them - this way you could theoretically block the error2 packet and be able to operate. Update: Ok now that i read that error2 = internal server error, you might be able to block some data packets which cause server to retrieve data which causes 500 ? Again, charles proxy has amf view for packets (which lays all info about farmville data traffic, you read it like a book) and has breakpoint mode which allows you to look at every packet incoming/outgoing before deciding whether we allow it or not. Also someone tell me what's the easiest way to get that error2 to happen consistently, i will try to look what can be done about it myself. freshap - thanks for patching that swf file Here is info on how i do it: 1. Sothink swf decompiler (need full version to be able to export AS code) - to get fully readable AS3 code. Invaluable, otherwise it would be impossible to actually find any interesting lines of code 2. buraks swf decompressor (please see my previous post for link) to get uncompressed swf file which is, well, readable at all as opposed to compressed one. Mac/linux users have to suck it up and get crossover im afraid. 3. nemo 440 - abcdump in AIR - very nice tool, quick and easy. doesnt have search function, but allows all dump to be exported into file. I use it to get all farmville code in format of AS3 tags. 4. 0xED / hexFiend / any binary editor if you arent on mac (check hexWorkshop) to get into raw hex format of the *uncompressed* swf file 5. abcdump.as for reference - thich instruction is coded as what byte - i mean abcdump.as from this link: http://iteratif.free.fr/tamarin/AbcDump.zip not the one from tamarin. Btw this zip also contains exe which basically replaces nemo440 if you are into console ;p 6. Text editor with regular expressions - textWrangler for mac, notepad2 for windows To that, knowledge i think i use - they are probably optional but help. 1. AS3 knowledge - replace as3 with any ecma language, or any programming language really 2. assembler knowledge (to get grip of as3 tag format) 3. regular expression knowledge (really absolutely basic knowledge required here, even less than that, you need to know 3 operators, i should probably say wildcard instead of regular expression) 4. general knowledge how to get into someone else's code Basically my workflow is based on the three versions of the game code: - regular AS3 code #1 from sothink swfdecompiler - AS3 tags #2 from nemo 440 and - actual hex format #3 of swf - plus abcdump reference #4. a ) In #1 i find lines that interest me, b ) then i look them up in #2, find as long sequence of instructions as possible (the longer sequence the better since probability of it being the only one in file goes up), check which ocurence in #2 the sequence of instructions is (if occurs more than once - #2 has info about classes, functions and literals so i can recognize), c ) translate sequence of instructions into chain of bytes using #2 and #4 and then d ) lookup that sequence of bytes (hex values - one byte is eg. "AB") and e ) look them up in #3. Now about the text editor with regular expressions i use it in two cases: 1. to find chain of instructions in #2 - i replace byte addresses (first column) and newline characters with wildcards. eg if i have: 234 pushbyte 235 0 I will not look for "234 pushbyte\r235 0" because this contains byte addresses and even though same chain of instructions will occur, they will probably not occur under same byte addresses, so i will search for "pushbyte\r.*0". I removed "234 " since its irrelevant and whatever byte address 0 comes under - my regular expression will find it 2. when i translate sequence of instructions into sequence of bytes i would be normally limited to instructions which are basic - do not contain literals such as class field or function name since i do not know swf format good enough to be able to translate literals into byte addresses. This is problematic since i either end up with sequence which isnt really long or is far away from actual code i want to change or even both. Now, if i take the very very exact code i want to find and replace literals with wildcards: eg i have getlex 'ass', getlex 'spank' i know 60 = getlex but dont know how ass and spank translate, so all i know it will be 60 byte byte 60 byte byte. In text editor which has regex i can look for it like that: 60....60.... because '.' means any sign. Now this example is very basic and you will get fuckton of matches for 60....60.... but it illustrates how you can get really long instruction chains found in raw hex code. If you want to know how i found that lines in actionscript code - someone on this forums just mentioned size_x and size_y - wasn't much searching knowing those names. But! way i use very often is this: when i want to change some functionality of game and there is some text connected to that (eg when i wanted to use tractor without having tractor, my reference point was "buy Now!" text on the menu), i look that text up in flashLocaleXml.xml (watch out for text with variables, eg instead "you got local celebrity ribbon" there will be "you got {0} ribbon") and check the key value of that text (its like this: <sometag key="BuyTractor">Buy now!</sometag>) knowing key value i can look up in the code where that exact key value (BuyTractor) occurs because i know it will be more or less tightly connected to the functionality i want to change. Sometimes you will have to jump a class or two but that gives info on where to start looking. Hope this helps keep in mind it took me half a day straight to figure, so don't give up when something goes wrong Yes, that's some really weird stuff with firefox and that xml files and cache and fiddler/charles. I just clear cache (there is undocumented shortcut cmd+shift+backspace which btw is same as clearing trash, how cool is that?) selecting everything and cache + site preferences. And even that not always works >< Finally, 8595 swf patched for 1x1: http://rapidshare.com/files/311502637/FarmGame.release-09-11-19.8595.swf
  11. With the version 8506, gamesettings.xml seems to be ignored (although still required), and its place takes fv_fuel_price_test_1.xml
  12. Right click this link and do save as: As for how to get 1x1 with gamesettings _only_, set sizeX and sizeY of plowed, fallow and crop of your choice to 1: <item name="fallow" type="plot" code="fa" > <requiredLevel>0</requiredLevel> <sizeX>1</sizeX> <sizeY>1</sizeY> </item> <item name="plowed" type="plot" code="pl"> <requiredLevel>0</requiredLevel> <sizeX>1</sizeX> <sizeY>1</sizeY> </item> <item name="soybeans" type="seed" subtype="vegetable" buyable="true" mastery="true" code="SY"> <requiredLevel>1</requiredLevel> <cost>15</cost> <growTime>1</growTime> <plantXp>2</plantXp> <coinYield>63</coinYield> <sizeX>1</sizeX> <sizeY>1</sizeY> Then delete some fields starting from bottom corner of your farm. Put plowed square on very bottom and put soybeans on it, it will shrink to 1x1. You cant put next 1x1 fields yet since at this moment you trigger collision (atm you can only put square in distance 4). Wait short moment and refresh page or visit neighbour farm and come back. Now you can put next plowed land right next to your 1x1. Repeat until you have all 1x1 you wanted. Once set up, it stays there (even if you later choose to put crops which you left at 4x4 setting you can overlap them but always start from top corner of 1x1 field), but setting this whole thing up takes massive amount of time, i think putting 1x1 squares on full 22x22 farm would take hours - that's why i decided to get 1x1 tool - this way i dont have to refresh page / visit neighbour because i dont have collision.
  13. Hello, After spending half a day figuring this darn thing, i wanted to share some of do it yourself info on how to edit the swf file in order to get 1x1 plow tool. This info is valid for version 8274 1. Decompress swf file (i used http://buraks.com/swifty/swfc11.zip) - works good under crossover as long as you use 'run command' mode 2. (optional - if you want to look for stuff on your own) Treat it with abcdump (or use nemo440 http://www.docsultant.com/nemo440/ which looks like just abcdump implementation in adobe AIR - handy for non windows users in case abcdump doesn't build properly like at my comp) 3. Open the uncompressed swf file in hex editor (i used http://www.suavetech.com/0xed/0xed.html which is great for its price, but i remember there was cooler one with file compare option) 4. Look for THIRD AND FOURTH OCCURANCE OF hex value 240468, which stands for: pushbyte, 4, initproperty, (this is followed by SIZE_X, but that 3 bytes are common for both SIZE_X and SIZE_Y, obviously) which you can find in decompiled code of class Classes.Plot, in function cinit (dummy function responsible for initialization of class fields). Those two occurances will be really close - separated by couple of bytes, so if they aren't, you are doing something wrong - eg typo in search value. 5. Alter them both to 240168 which will set all tool sizes to 1x1 instead of 4x4 and save file. 6. Finally, for non windows users - after long search finally i found at least one damn tool allowing to inject single files/directories (rather than whole domains as in hosts file) - http://www.charlesproxy.com/ shareware runs for half an hour and requires a restart after that, but that's not too big inconvenience, especially with oh-so-persistant firefox cache, hehe. Inject option is called 'map local' - you set it up in tools/map local and enable after clicking tools icon on top of application and in popup menu clicking 'map local'. Clear cache after each new entry. Cheers
×
×
  • Create New...