<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6420488902861342378</id><updated>2012-02-16T12:18:34.845+01:00</updated><category term='gameSettings.xml.gz unreleased farmville items 02GM'/><category term='FV hashed images'/><category term='XSLT fvinternals.funpic.de friendlyname itemcodes'/><title type='text'>FarmVille Internals</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-5860731570207490692</id><published>2010-10-25T10:51:00.000+02:00</published><updated>2010-10-25T10:51:47.471+02:00</updated><title type='text'>Website down</title><content type='html'>It seems like that our hoster Funpic took the site down without any warning.&lt;br /&gt;We are looking for a good alternative, but meanwhile the site stay down.&lt;br /&gt;We appreciate any hint to a good free webhoster or an alternative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-5860731570207490692?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/5860731570207490692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/10/website-down.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5860731570207490692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5860731570207490692'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/10/website-down.html' title='Website down'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-1981871546518513141</id><published>2010-10-01T22:13:00.000+02:00</published><updated>2010-10-01T22:13:04.771+02:00</updated><title type='text'>New website is now online</title><content type='html'>New page with new design and new functionality is going online now :)&lt;br /&gt;&lt;br /&gt;Visit it on&amp;nbsp;&lt;a href="http://fvinternals.funpic.de/site/"&gt;http://fvinternals.funpic.de/site/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The website is optimized for &lt;b&gt;Internet Explorer 8&lt;/b&gt;, &lt;b&gt;Firefox&lt;/b&gt;, &lt;b&gt;Chrome&lt;/b&gt;, &lt;b&gt;Safari &lt;/b&gt;and &lt;b&gt;Opera&lt;/b&gt;. We recommend you to use an up to date browser. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The fvinternals team has grown up. You can find some information about us in the contact page.&lt;br /&gt;&lt;br /&gt;This blog is still our main source for sharing new informations. We got some volunteers, who are working on site translations. Maybe you can view the website in your own language in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-1981871546518513141?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/1981871546518513141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/10/new-website-is-now-online.html#comment-form' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/1981871546518513141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/1981871546518513141'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/10/new-website-is-now-online.html' title='New website is now online'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-9048765941305792860</id><published>2010-09-20T17:03:00.000+02:00</published><updated>2010-09-20T17:03:15.681+02:00</updated><title type='text'>Support haiti with the re-gift cheat</title><content type='html'>Farmville got updated with new a new function "re-gifting". This functions allows you to share the giftable items from your giftbox with your friends. There is a limit of three request per day.&lt;br /&gt;&lt;br /&gt;Some information about the function:&lt;br /&gt;&lt;br /&gt;FunctionName: UserService.&lt;b&gt;giftStoredGiftBoxItems&lt;/b&gt;&lt;br /&gt;Parameters: [&lt;b&gt;itemcode&lt;/b&gt;], [&lt;b&gt;number of elements to share&lt;/b&gt;]&lt;br /&gt;&lt;br /&gt;The first release had no checks, it simple took the itemcode, and did following mathematical operation. &lt;br /&gt;&lt;blockquote&gt;item_count = item_count - number_of_shared_items&lt;/blockquote&gt;Where &lt;i&gt;item_count&lt;/i&gt; is the number of the items in your giftbox like "olivetree=3" and the &lt;i&gt;number_of_shared_items&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;By changing the itemcode, you could simple share items like fv cash with your friends. But Zynga recognized this bug very fast and is now checking if the item is giftable. The &lt;a href="http://fvinternals.blogspot.com/2010/09/gifts-in-farmville.html"&gt;giftable items&lt;/a&gt; can be viewed on &lt;a href="http://fvinternals.funpic.de/giftable.php"&gt;http://fvinternals.funpic.de/giftable.php&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now lets begin with a simple mathematic course to understand what the new haiti is doing.&lt;br /&gt;&lt;br /&gt;We assume, that our giftbox has three &lt;i&gt;haitibackpack_item_single&lt;/i&gt; items.&lt;br /&gt;If we set &lt;i&gt;number_of_shared_items&lt;/i&gt; to 1, the calculation will be&lt;br /&gt;&lt;b&gt;number_of_shared_items&lt;/b&gt; = 3 - 1 = &lt;b&gt;2&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;But what happens if we set &lt;i&gt;number_of_shared_items&lt;/i&gt; to -1?&lt;br /&gt;&lt;b&gt;number_of_shared_items&lt;/b&gt; = 2 - (-1) = 2 + 1 = &lt;b&gt;3&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Yes, we can add items to our giftbox.&lt;br /&gt;If there is no item in the giftbox, the counter would be zero. So you can also add new giftable items to an empty giftbox.&lt;br /&gt;&lt;br /&gt;We implemented this cheat to support the haiti school. If we understood it correctly, Zynga is counting the items on your backpack. Use this tool to get as many schoolitems into your giftbox as you want to support haiti.&lt;br /&gt;&lt;br /&gt;Download the &lt;a href="http://fvinternals.fv.funpic.de/codes/haiti.exe"&gt;haiti.exe&lt;/a&gt; and put in into your FVinternals folder, should be on C:\FV\ for most of you.&lt;br /&gt;&lt;br /&gt;Run it as follows to get 500 backpack items:&lt;br /&gt;&lt;blockquote&gt;haiti.exe youremail --reGift=haitibackpack_item_single --countItem=500&lt;/blockquote&gt;&lt;br /&gt;You can also get other items using this tool, just change the itemname and the counter. Visit &lt;a href="http://fvinternals.funpic.de/giftable.php"&gt;http://fvinternals.funpic.de/giftable.php&lt;/a&gt; for itemnames.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some further information, what happened in the last week.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;fvinternals beta3 is not working anymore, the trick is fixed, you cannot generate new animals using the old trick.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We are working hard on the new weblayout. If everything works fine, you will see a new fvinternals page soon. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;We have now two more members (tutorial writer and web designer). More information about the fvinternals crew will be available on the new page.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Re-gifting feature appeared with bugs. I assume this will be fixed soon.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Comment function is not longer available for Anonymous.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-9048765941305792860?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/9048765941305792860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/09/support-haiti-with-re-gift-cheat.html#comment-form' title='53 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/9048765941305792860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/9048765941305792860'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/09/support-haiti-with-re-gift-cheat.html' title='Support haiti with the re-gift cheat'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>53</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-981614811193884426</id><published>2010-09-09T19:29:00.014+02:00</published><updated>2010-09-22T09:45:09.125+02:00</updated><title type='text'>fvinternals tool beta3</title><content type='html'>We updated the fvinternals tool. We are using Python 2.6 now.&lt;br /&gt;&lt;br /&gt;You have to redownload all files with the beta3.&lt;br /&gt;&lt;br /&gt;Get everything on &lt;a href="http://fvinternals.funpic.de/codes/fvinternals_beta3/"&gt;http://fvinternals.funpic.de/codes/fvinternals_beta3/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As mentioned in &lt;a href="http://fvinternals.blogspot.com/2010/09/gifts-in-farmville.html"&gt;our last post about gifts&lt;/a&gt;, the tool crashed on reading the new four items for dogs. There are no new features, we removed the openmysterybox function since the bug got fixed some days ago.&lt;br /&gt;&lt;br /&gt;Send us the error messages you get, if you cannot find any update on this blog.&lt;br /&gt;&lt;br /&gt;Our poll has finished with following results.&lt;br /&gt;&lt;br /&gt;YES: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 82 Votes (37%)&lt;br /&gt;NO :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 102 Votes (48%)&lt;br /&gt;Not all features:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26 Votest (12%)&lt;br /&gt;Onyl after multiple runs:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 Votes (1%)&lt;br /&gt;&lt;br /&gt;Seems many of the users have troubles to run. We got some e-mails, where we could see, that the runtime files are missing. This means, some of you don't read the blog but try to start the exe and vote with No? Which are the real problems, what kind of difficulties do you have beside download every file?&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;&lt;blockquote&gt;This entry got removed by blogspot, because of violating some copyright rules. Wtf? What did we say here? Cheating is only violating terms of use of the flash game, but not the copyright. We have to change something to republish this entry, so we replaced the word "cheat" with "tool", which has the same meaning in this context and removed the itemnames.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-981614811193884426?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/981614811193884426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/09/fvinternals-cheat-tool-beta3.html#comment-form' title='143 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/981614811193884426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/981614811193884426'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/09/fvinternals-cheat-tool-beta3.html' title='fvinternals tool beta3'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>143</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-8563324034068298102</id><published>2010-09-09T12:29:00.002+02:00</published><updated>2010-09-13T13:28:13.932+02:00</updated><title type='text'>Gifts in Farmville</title><content type='html'>Today, we got a request to publish the links for rare sendable items.&lt;br /&gt;&lt;br /&gt;Here are the informations, how you can build the links for your own.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pre selected wishlist&lt;/b&gt;&lt;br /&gt;Start with the page, where you can share your wishlist, this has preselected items.&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts.php?template=wishlist"&gt;http://www.farmville.com/gifts.php?template=wishlist&lt;/a&gt;&lt;br /&gt;You can manipulate this list, but that is not part of the entry.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sending gifts to friends&lt;/b&gt;&lt;br /&gt;Now lets talk about sending special gifts to your neighbors.&lt;br /&gt;The URL has the following format:&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=[itemname]"&gt;http://www.farmville.com/gifts_send.php?gift=[itemname]&lt;/a&gt;, where you have to replace [itemname] with a valid itemname, which you can get from the items.xml or our &lt;a href="http://fvinternals.fv.funpic.de/search.html"&gt;search engine&lt;/a&gt;.&lt;br /&gt;A valid example would be http://www.farmville.com/gifts_send.php?gift=abcblocks&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Let others send you gifts or send to non-neighbors&lt;/b&gt;&lt;br /&gt;If you want to send an gift to somebody, who is not your neighbor, or if you want other to send gifts to you. You can take the following URL format:&lt;br /&gt;&lt;a href="http://www.farmville.com/wishlist_give.php?recipient=[facebookID]&amp;amp;giftId=[itemname]"&gt;http://www.farmville.com/wishlist_give.php?recipient=[facebookID]&amp;amp;giftId=[itemname]&lt;/a&gt;, where you have to insert the Facebook ID (Profile ID) of the user, and the neededn itemname.&lt;br /&gt;A valid example would be http://www.farmville.com/wishlist_give.php?recipient=10000xxxx&amp;amp;giftId=horseshoe&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sendable Items&lt;/b&gt;&lt;br /&gt;You can send items, that are marked as sendable or giftable. You can select them from the items.xml and search for for &lt;i&gt;giftable="true"&lt;/i&gt; or &lt;i&gt;sendable="true"&lt;/i&gt;. Keep attention on the dates, you cannot send them, if they have a &amp;lt;limitedGiftEnd&amp;gt; node, which is dating the past.&lt;br /&gt;&lt;br /&gt;You can view the &lt;a href="http://fvinternals.fv.funpic.de/giftable.php"&gt;Giftable items on this page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Below is a example list of all sendable items of version 43104:&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=amethyst"&gt;http://www.farmville.com/gifts_send.php?gift=amethyst&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=topaz"&gt;http://www.farmville.com/gifts_send.php?gift=topaz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=turquoise"&gt;http://www.farmville.com/gifts_send.php?gift=turquoise&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=abcblocks"&gt;http://www.farmville.com/gifts_send.php?gift=abcblocks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=trainwhistle"&gt;http://www.farmville.com/gifts_send.php?gift=trainwhistle&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=duckpushtoy"&gt;http://www.farmville.com/gifts_send.php?gift=duckpushtoy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=jack"&gt;http://www.farmville.com/gifts_send.php?gift=jack&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=marble"&gt;http://www.farmville.com/gifts_send.php?gift=marble&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.farmville.com/gifts_send.php?gift=paddleball"&gt;http://www.farmville.com/gifts_send.php?gift=paddleball&lt;/a&gt;&lt;/blockquote&gt;UPDATE:&lt;br /&gt;&lt;blockquote&gt;Seems like, you need a referer for the &lt;a href="http://www.farmville.com/gifts_send.php?ref=pregnantsow&amp;amp;gift=piglet"&gt;piglet&lt;/a&gt;.&lt;/blockquote&gt;&lt;br /&gt;@Tool: The cheat is still working, but the last update updated the items.xml with &lt;i&gt;waterbowl, waterbowl_red, toy_bone, toy_stuffeddog&lt;/i&gt;, which are leading to an error on farm access. We have a fix, but cannot compile it at the moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-8563324034068298102?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/8563324034068298102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/09/gifts-in-farmville.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/8563324034068298102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/8563324034068298102'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/09/gifts-in-farmville.html' title='Gifts in Farmville'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-1848551634005611896</id><published>2010-09-04T00:29:00.000+02:00</published><updated>2010-09-04T00:29:32.936+02:00</updated><title type='text'>New page with unreleased items online</title><content type='html'>After looking for help with the unreleased we got 1,5 days ago an offer for help. Now we can publish the new site with all the images, that are manually verified. Our new member want to stay anonymous, so no nick- or real name is given. But we want to thank our new member for doing this great and fast work. Verifying about 1000 images in just 1,5 days. We also want to thank all the others, who got a login to the member area and tried to help us. They have also spend much time into the verification.&lt;br /&gt;&lt;br /&gt;Visit the &lt;a href="http://fvinternals.fv.funpic.de/preview/unreleased.php"&gt;manually verified unreleased.php&lt;/a&gt; and write here a comment if you find an item, that is already released, or if you have any suggestions. &lt;br /&gt;&lt;br /&gt;The items are categorized, so you can select the category you are interested in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-1848551634005611896?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/1848551634005611896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/09/new-page-with-unreleased-items-online.html#comment-form' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/1848551634005611896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/1848551634005611896'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/09/new-page-with-unreleased-items-online.html' title='New page with unreleased items online'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-5509687715446192957</id><published>2010-09-02T10:25:00.000+02:00</published><updated>2010-09-02T23:30:57.984+02:00</updated><title type='text'>Farmville doesn't use the gzip obfuscation anymore</title><content type='html'>We blogged about &lt;a href="http://fvinternals.blogspot.com/2010/08/gamesettingsxmlgz-itemsxmlgz-and-other.html"&gt;itemx.xml.gz and gameSettings.xml.gz obfuscation&lt;/a&gt; of the Farmville game. Now they removed the obfuscation, and you get the XML Files z-compressed without the any header you have to remove.&lt;br /&gt;&lt;br /&gt;If you want to use python, update the decompress.py with the code below. &lt;br /&gt;&lt;blockquote&gt;import zlib&lt;br /&gt;import urllib&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;def main():&lt;br /&gt;&amp;nbsp; file = urllib.urlopen(sys.argv[1]).read()&lt;br /&gt;&amp;nbsp; print zlib.decompress(file)&lt;br /&gt;&lt;br /&gt;if __name__=="__main__":&lt;br /&gt;&amp;nbsp; main()&lt;/blockquote&gt;&lt;br /&gt;You can download &lt;a href="http://fvinternals.fv.funpic.de/codes/decompress20100902.exe"&gt;here the windows binary for .xml.gz decompression&lt;/a&gt; and &lt;a href="http://fvinternals.fv.funpic.de/codes/decompress20100902.py"&gt;here the python file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Compression: &lt;a href="http://fvinternals.fv.funpic.de/codes/compress20100902.py"&gt;compress.py&lt;/a&gt; and &lt;a href="http://fvinternals.fv.funpic.de/codes/compress20100902.exe"&gt;compress.exe&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;import zlib&lt;br /&gt;import urllib&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;def main():&lt;br /&gt;&amp;nbsp; file = open(sys.argv[1], 'r').read()&lt;br /&gt;&amp;nbsp; output = open(sys.argv[1]+'.gz', 'w')&lt;br /&gt;&amp;nbsp; output.write(zlib.compress(file))&lt;br /&gt;&amp;nbsp; output.close()&lt;br /&gt;&lt;br /&gt;if __name__=="__main__":&lt;br /&gt;&amp;nbsp; main()&lt;/blockquote&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;We also recompiled the &lt;a href="http://fvinternals.fv.funpic.de/codes/fvinternals_beta2_fix.exe"&gt;fvinternals cheat tool&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-5509687715446192957?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/5509687715446192957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/09/farmville-doesnt-use-gzip-obfuscation.html#comment-form' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5509687715446192957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5509687715446192957'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/09/farmville-doesnt-use-gzip-obfuscation.html' title='Farmville doesn&apos;t use the gzip obfuscation anymore'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-3788666341483500878</id><published>2010-08-31T18:50:00.000+02:00</published><updated>2010-08-31T18:50:08.833+02:00</updated><title type='text'>Fast tool bugfix</title><content type='html'>Here is a fast bugfix for &lt;a href="http://fvinternals.blogspot.com/2010/08/tool-for-getting-storable-animals-for.html"&gt;the cheat tool&lt;/a&gt;.&lt;br /&gt;Dowload the &lt;a href="http://fvinternals.fv.funpic.de/codes/fvinternals_beta2.exe"&gt;fvinternals cheat tool bugfix&lt;/a&gt;. Download the &lt;a href="http://fvinternals.fv.funpic.de/codes/runtime/"&gt;runtime files&lt;/a&gt; and overwrite the library.zip with the new &lt;a href="http://fvinternals.fv.funpic.de/codes/runtime/fvinternals.exe/library.zip"&gt;library.zip&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Reported bugs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;some animal values are static (fixed: our fault, we forgot to disable the debugging line)&lt;/li&gt;&lt;li&gt;password is rejected by facebook (not fixed: actually we need some example passwords to verify this. We assume, this is a unicode problem. Workaround: Change your facebook pass to non unicode password)&lt;/li&gt;&lt;/ul&gt;Feature requests:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Opening multiple mysteryboxes at a time (done! use --numEggs=&amp;lt;number&amp;gt;)&lt;/li&gt;&lt;li&gt;Password typing every start is annoying (done! use can now optionally insert it as argument into the commandline)&lt;/li&gt;&lt;li&gt;Place mysterygifts into the farm (queued) &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Following line will use the commandline for password input and open 3 eggs on each login.&lt;br /&gt;&lt;blockquote&gt;c:\FV\fvinternals_beta2.exe alice@facebook.com secretpassword --openEggs=mysterbox --numEggs=3&lt;/blockquote&gt;&lt;br /&gt;If you leave the password empty it will ask for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-3788666341483500878?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/3788666341483500878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/fast-tool-bugfix.html#comment-form' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3788666341483500878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3788666341483500878'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/fast-tool-bugfix.html' title='Fast tool bugfix'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-3742355878811655010</id><published>2010-08-31T14:15:00.000+02:00</published><updated>2010-08-31T14:15:12.877+02:00</updated><title type='text'>SQL Server for Farmville</title><content type='html'>Today i got an interested error message.&lt;br /&gt;&lt;blockquote&gt;can't connect to server with dsn='mysql:host=10.211.50.239;port=3306;dbname=farm_1;', &lt;br /&gt;error message SQLSTATE[HY000] [2003] &lt;br /&gt;Can't connect to MySQL server on '10.211.50.239' (4).;&lt;br /&gt;PDOMySqlClient.class.php:70&lt;/blockquote&gt;What information can we extract from it?&lt;br /&gt;&lt;br /&gt;Farmville uses &lt;a href="http://www.php.net/manual/en/class.pdo.php"&gt;PHP Data Objects &lt;/a&gt; for the MySQL requests.&lt;br /&gt;In line 70 of the php class, they are using the command &lt;a href="http://www.php.net/manual/en/pdo.construct.php"&gt;PDO::__construct()&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The MySQL server runs on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ip = 10.211.50.239&lt;/li&gt;&lt;li&gt;port = 3306 (default)&lt;/li&gt;&lt;/ul&gt;The database in my request is called &lt;b&gt;farm_1&lt;/b&gt;, but maybe there are others like farm_2.&lt;br /&gt;&lt;br /&gt;I assume Farmville run multiple hosts with MySQL databases, but this is one we could extract from the error messages :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-3742355878811655010?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/3742355878811655010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/sql-server-for-farmville.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3742355878811655010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3742355878811655010'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/sql-server-for-farmville.html' title='SQL Server for Farmville'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-2019671493914767164</id><published>2010-08-29T19:08:00.000+02:00</published><updated>2010-08-29T19:08:51.351+02:00</updated><title type='text'>Items in mysteryboxes</title><content type='html'>Yesterday, we published &lt;a href="http://fvinternals.blogspot.com/2010/08/tool-for-getting-storable-animals-for.html"&gt;the first cheat tool of fvinternals&lt;/a&gt;, which has the feature of opening every mysteryegg as a mysterybox item.&lt;br /&gt;Today we googled for other farmville blogs and sites, which contain information about the mysterybox contents.&lt;br /&gt;&lt;br /&gt;We added some items and want to share the list with you, so you can select your item and the belonging mysterybox itemcode.&lt;br /&gt;&lt;br /&gt;Here is &lt;a href="http://fvinternals.fv.funpic.de/mysterybox.php"&gt;our list of mysteryboxes and their contents&lt;/a&gt;. We would appreciate every help to complete the list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-2019671493914767164?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/2019671493914767164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/items-in-mysteryboxes.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2019671493914767164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2019671493914767164'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/items-in-mysteryboxes.html' title='Items in mysteryboxes'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-2443218379885224406</id><published>2010-08-29T00:30:00.000+02:00</published><updated>2010-08-29T14:38:00.406+02:00</updated><title type='text'>Tool for getting storable animals for free</title><content type='html'>Some infos about the events of the last days.&lt;br /&gt;&lt;br /&gt;We couldn't completely automate the unreleased items page, so we are looking for help. At the moment some trials are trying to select all images, but this task takes little time. If they can manage it in time, we will publish the manual selected unreleased items here.&lt;br /&gt;&lt;br /&gt;We have also played with some AMF functions and implemented some "cheats". We thank here our supporter lotm, who helped us with the AMF codes. This wouldn't be possible without his work.&lt;br /&gt;&lt;br /&gt;Since our main readers are using MS Windows, we tried to compile our code to an EXE again. But this was more difficult than developing the cheats :) After some days of library code patching we finally publish our first fvinternals cheat tool.&lt;br /&gt;&lt;br /&gt;Which functionalities does it have:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Adding any storable animal to one of your storages (Dairy-, Nursery-, Horse- and Chickenstorage)&lt;/li&gt;&lt;li&gt;The binary places&amp;nbsp; mysteryeggs from your giftbox into your farm&lt;/li&gt;&lt;li&gt;Opening the mysteryeggs as a mysterybox or mysterygame (Thx for telling us this)&lt;/li&gt;&lt;li&gt;(Turning christmas lights on/off. This was fixed today, so it is historical in the binary)&lt;/li&gt;&lt;/ol&gt;App parameters:&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;--getHorse=horse_item_code&lt;br /&gt;&amp;nbsp;--getBaby=foal/calf_item_code&lt;br /&gt;&amp;nbsp;--getCow=cow_item_code&lt;br /&gt;&amp;nbsp;--getChicken=chicken_item_code&lt;br /&gt;&amp;nbsp;--getPig=pig_item_code&lt;br /&gt;&amp;nbsp;--openEggs=mysterybox_code&lt;br /&gt;&amp;nbsp;--enableLights=1&lt;br /&gt;&amp;nbsp;--disableLights=1&lt;/blockquote&gt;Run it as:&lt;br /&gt;&lt;blockquote&gt;fvinternals.exe your@email.com --option&lt;/blockquote&gt;Example: (Visit &lt;a href="http://fvinternals.fv.funpic.de/search.html"&gt;fvinternals item search&lt;/a&gt; and search for "mystery" to get the codes)&lt;br /&gt;&lt;blockquote&gt;C:\FV\fvinternals.exe your@email.com --openEggs=mysterybox100824&lt;/blockquote&gt;&lt;br /&gt;Download the file &lt;a href="http://fvinternals.fv.funpic.de/codes/fvinternals.exe"&gt;fvinternals.exe from our download site&lt;/a&gt; and download the  &lt;a href="http://fvinternals.fv.funpic.de/codes/runtime/"&gt;runtime files&lt;/a&gt;. You have to overwrite the old library.zip with the new &lt;a href="http://fvinternals.fv.funpic.de/codes/runtime/fvinternals.exe/library.zip"&gt;library.zip&lt;/a&gt;. Place everything on "C:\FV\" and start "cmd.exe" to execute it, read older posts, if you don't know how.&lt;br /&gt;&lt;br /&gt;As mentioned above, creating the .exe was a big trouble. That's why it is unstable. If it doesn't work, run it multiple times. If it is still not working report the bug to us.&lt;br /&gt;&lt;br /&gt;How are the cheats working?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mysteryegg: Opening a mysteryegg, that is placed on the farm and change the itemname to a mysterybox itemname.&lt;/li&gt;&lt;li&gt;animalstorage: you put two animals into the storage. the first one have to be valid and the second one is a generated one.&amp;nbsp;&lt;/li&gt;&lt;li&gt;lights trick: you could set alternate graphics to some objects, this action was free. we just send the command to server. Nothing special, but since today, they charge FV cash for it. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Screenshot after our tests:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_fZ3HPoQA7RE/THobAus7PFI/AAAAAAAAAAs/QI_uknpe5og/s1600/belted_cow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="387" src="http://2.bp.blogspot.com/_fZ3HPoQA7RE/THobAus7PFI/AAAAAAAAAAs/QI_uknpe5og/s640/belted_cow.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-2443218379885224406?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/2443218379885224406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/tool-for-getting-storable-animals-for.html#comment-form' title='65 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2443218379885224406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2443218379885224406'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/tool-for-getting-storable-animals-for.html' title='Tool for getting storable animals for free'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fZ3HPoQA7RE/THobAus7PFI/AAAAAAAAAAs/QI_uknpe5og/s72-c/belted_cow.png' height='72' width='72'/><thr:total>65</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-2351474502663337042</id><published>2010-08-22T23:10:00.000+02:00</published><updated>2010-08-23T17:46:43.778+02:00</updated><title type='text'>Getting the redbrown calf or any other calf you want</title><content type='html'>Our research on Farmville is still going on. Today we are going to tell you something about the lonely animals links and how you can change them to get another rewards.&lt;br /&gt;&lt;br /&gt;The links in Facebook have this format:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;http://apps.facebook.com/onthefarm/track.php?creative&amp;amp;cat=lonely_cow&amp;amp;subcat=pink&amp;amp;key=&lt;somekey&gt;&amp;amp;next=lonelycow.php%3Fowner_id%3D&lt;yourid&gt;%26lonely_cow_id%3D&lt;cowid&gt;%26animalType%3Dcow_pink%26lonely_cow_sig%3D&lt;hash&gt;&amp;amp;ref=nf&lt;br /&gt;&lt;/hash&gt;&lt;/cowid&gt;&lt;/yourid&gt;&lt;/somekey&gt;&lt;/blockquote&gt;&lt;br /&gt;Interesting is, that the key is not needed and if you use farmville.com to play you will get another links like:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;http://www.farmville.com/lonelycow.php?owner_id=1234&amp;amp;animalType=cow_pink&amp;amp;lonely_cow_id=123456456345&amp;amp;lonely_cow_sig=234523452345&lt;/blockquote&gt;&lt;br /&gt;Since the farmville.com URL is simpler, we concentrate on this.&lt;br /&gt;&lt;br /&gt;Lets have a look at the variables.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;owner_id =&lt;/b&gt; this is the facebook id of the user, who found the animal&lt;br /&gt;&lt;b&gt;animalType = &lt;/b&gt;this is the animal type like cow_pinkm calf_pink , ...&lt;br /&gt;&lt;b&gt;lonely_cow_id = &lt;/b&gt;this id is unique for every lost animal&lt;br /&gt;&lt;b&gt;lonely_cow_sig = &lt;/b&gt;this is a signature of the string&lt;br /&gt;&lt;br /&gt;Zynga is using this signature to protect user changes in the url like changing the animalType to calf_redbrown.&lt;br /&gt;&lt;br /&gt;Interesting is, that Zynga is only saving the cow_id on the serverside. The signature is calculated by the client.&lt;br /&gt;What does this mean for us? We can generate our own links, just by using the cow_id.&lt;br /&gt;&lt;br /&gt;Back to redbrown calf, this calf cannot be born, because the redbrown cow cannot be stored in the dairybarn. But it is a valid object in the gamedata and we can now convert every lonely cow link to a redbrown calf link.&lt;br /&gt;&lt;br /&gt;As proof of concept we implemented this and testet it with some calfs, seems like you can generate every calf from any lonely cow link, even from deer bucks or horses.&lt;br /&gt;&lt;br /&gt;Visit &lt;a href="http://fvinternals.funpic.de/convert.php"&gt;http://fvinternals.funpic.de/convert.php&lt;/a&gt; and test it with a valid lonely animal link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-2351474502663337042?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/2351474502663337042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-redbrown-calf-or-any-other-calf.html#comment-form' title='46 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2351474502663337042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2351474502663337042'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-redbrown-calf-or-any-other-calf.html' title='Getting the redbrown calf or any other calf you want'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>46</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-7399356521893199253</id><published>2010-08-21T10:45:00.000+02:00</published><updated>2010-08-21T11:05:33.102+02:00</updated><title type='text'>Getting images (and codes) of unreleased items</title><content type='html'>Since &lt;a href="http://fvinternals.blogspot.com/2010/08/farmville-uses-new-image-links.html"&gt;Zynga updated the item image links&lt;/a&gt; we wondered about the big size of the hashtable. By looking deeper at this hashtable and viewing some images we recognized, that there are images, you never see during the game. For example, there is an &lt;a href="http://static-0.farmville.com/prod/hashed/assets/buildings/6c860820215f0b32b5176c8b6055a56f.png"&gt;image of Craig's farm&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We filtered then all links, that are not used by the items.xml. There are many images that are still used by the game, like misson completed images.&lt;br /&gt;&lt;br /&gt;We set a filter on buildings, animals and crops and this helped to get a viewable size of images. Interesting is, that much of them are not released.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static-0.farmville.com/prod/hashed/assets/buildings/914e4c70edde53734222b7c87ce5a261.png"&gt;Pig Storage&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-0.farmville.com/prod/hashed/assets/buildings/520abef0e0c117e2a03be459299de480.png"&gt;Dog house&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-0.farmville.com/prod/hashed/assets/animals/667ad9fdd5948e6625e827da59e6b0c1.png"&gt;White appaloose horse&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-0.farmville.com/prod/hashed/assets/animals/b58f249a01513e1eb31886a09767ff13.png"&gt;Buckskin horse&lt;/a&gt; (new since &lt;a href="http://static.farmville.com/embeds/v40680/FarmGame.release-10-08-19-hotfix.40680.swf"&gt;Farmgame 40680&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It seems like you can also get the future itemcodes from the images. The plain image links are in the form&lt;br /&gt;"assets/buildings/building_doghouse_icon.png" and the format is looking like &amp;lt;path&amp;gt;/&amp;lt;type&amp;gt;&amp;lt;itemcode&amp;gt;_icon.png.&lt;br /&gt;&lt;br /&gt;We tried to filter out the unreleased items, since there is now flag if the url is unreleased or not. You can view the images and codes by visiting &lt;a href="http://fvinternals.funpic.de/unreleased.php"&gt;http://fvinternals.funpic.de/unreleased.php&lt;/a&gt;. If there are some missing, we couldn't catch by our filter, please tell us. And if you want us to filter out some items, to remove already released items, so write a comment or send an e-mail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-7399356521893199253?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/7399356521893199253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-images-and-codes-of-unreleased.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7399356521893199253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7399356521893199253'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-images-and-codes-of-unreleased.html' title='Getting images (and codes) of unreleased items'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-2712027892300736940</id><published>2010-08-21T10:22:00.000+02:00</published><updated>2010-08-21T16:26:59.955+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSLT fvinternals.funpic.de friendlyname itemcodes'/><title type='text'>Friendlynames of items</title><content type='html'>As we mentioned, &lt;a href="http://fvinternals.blogspot.com/2010/08/farmville-uses-new-image-links.html"&gt;Farmville is using a hashtable&lt;/a&gt; and &lt;a href="http://fvinternals.blogspot.com/2010/08/getting-new-images-without-decompiling.html"&gt;how you can get them&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Sometimes you are looking for codes of items, that already are on your farm. For example the kelly green cow. The problem is, the code name is "cow_shamrock" and you don't know, what you have to search for. You can only filter by "cow" and look at the images. The solution for this is easy, inside the &lt;a href="http://static-facebook.farmville.com/v40555/flashLocaleXml.xml.gz"&gt;flashLocaleXml.xml&lt;/a&gt; are the displayed names stored. They are looking like:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;l k="cow_shamrock_friendlyName"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;v&amp;gt;Kelly Green Cow&amp;lt;/v&amp;gt;&lt;br /&gt;&amp;lt;/l&amp;gt;&lt;br /&gt;&amp;lt;l k="calf_shamrock_friendlyName"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;v&amp;gt;Kelly Green Calf&amp;lt;/v&amp;gt;&lt;br /&gt;&amp;lt;/l&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html"&gt;We used again XSLT&lt;/a&gt;  to get the data out of XML. You can change the  &lt;a href="http://fvinternals.fv.funpic.de/codes/transform.xsl"&gt;XSL File&lt;/a&gt; like this to get the new values. If you need help with this, you may contact us, or write a comment below.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;xsl:for-each select="localization/b/l"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:if test="contains(@k,'friendlyName')"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... access itemcode using 'v' and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; friendlyname using '@k'&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;Now we have itemcodes, hashed image links and now the displayed names. &lt;br /&gt;We used that info for building a &lt;a href="http://fvinternals.fv.funpic.de/hashedimages.php"&gt;full List of all hashed links&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We have also updated the &lt;a href="http://fvinternals.fv.funpic.de/search.html"&gt;search function&lt;/a&gt; a little bit. You can now search for displayed names and item codes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-2712027892300736940?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/2712027892300736940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/friendlynames-of-items.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2712027892300736940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/2712027892300736940'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/friendlynames-of-items.html' title='Friendlynames of items'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-3789073154744878425</id><published>2010-08-17T20:10:00.000+02:00</published><updated>2010-08-20T16:43:02.209+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FV hashed images'/><title type='text'>Getting new Images without decompiling the Flashgame</title><content type='html'>&lt;a href="http://fvinternals.blogspot.com/2010/08/farmville-uses-new-image-links.html"&gt;Yesterday we blogged about the new images in Farmville.&lt;/a&gt; Today we want to show you a method of how you can get them without the hard work of decompilation. No more need for commercial decompiler.&lt;br /&gt;&lt;br /&gt;Since the URL are in the SWF, we started looking deeper inside the binary and the SWF Format. SWF Files have a header, which is telling if the SWF file is compressed or not. In our case it was, so you cannot look into binary and see the URLs in plain text. We had former experience with SWF files, so we knew how to compress/decompress SWF files. That's the reason why we use our own code for decompressing it.&lt;br /&gt;&lt;br /&gt;After decompressing it, you can see the URLs in plaintext, the only problem is, that there is much binary crap. So we wrote some small python code, to search for the links inside the binary.&lt;br /&gt;&lt;br /&gt;The final program can be found on our site.&lt;br /&gt;Download it from &lt;a href="http://fvinternals.funpic.de/codes/extracthashedimages.exe"&gt;http://fvinternals.funpic.de/codes/extracthashedimages.exe&lt;/a&gt;&lt;br /&gt;You will also need the runtimes from &lt;a href="http://fvinternals.funpic.de/codes/runtime/"&gt;http://fvinternals.funpic.de/codes/runtime/&lt;/a&gt;&lt;br /&gt;Copy all files to "C:\FV\"&lt;br /&gt;&lt;br /&gt;Download the Farmgame.swf from Farmville, we used &lt;a href="http://static.farmville.com/embeds/v39998/FarmGame.release-10-08-12.39998.swf"&gt;FarmGame.release-10-08-12.39998.swf&lt;/a&gt; for our tests.&lt;br /&gt;&lt;blockquote&gt;c:\FV&amp;gt; extracthashedimages.exe FarmGame.release-10-08-12.39998.swf&lt;/blockquote&gt;and you should see a new file &lt;b&gt;images.txt&lt;/b&gt; in your folder. Open it and you see the Hashtable in the format &lt;br /&gt;&lt;b&gt;old link:new hashed link&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you need the source code, feel free to e-mail us.&lt;br /&gt;&lt;br /&gt;We used the data for generating a website, which displays the itemcodes and the belonging new image URL. Visit it on &lt;a href="http://fvinternals.funpic.de/hashedimages.php"&gt;http://fvinternals.funpic.de/hashedimages.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We also made a search formular to filter interesting values like&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Item type, e.g. show only animals&lt;/li&gt;&lt;li&gt; Item code search, e.g. display only code with "horse" in text&lt;/li&gt;&lt;li&gt;Show only items, that doesn't need Farmville cash&lt;/li&gt;&lt;li&gt;Show only items, that are only buyable with Farmville cash&lt;/li&gt;&lt;/ul&gt;This Search site can be found at &lt;a href="http://fvinternals.funpic.de/search.html"&gt;http://fvinternals.funpic.de/search.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have questions, or request, you can e-mail us, just read our &lt;a href="http://fvinternals.blogspot.com/2010/08/farmville-internals.html"&gt;first post for e-mail&lt;/a&gt; or write a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-3789073154744878425?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/3789073154744878425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-new-images-without-decompiling.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3789073154744878425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3789073154744878425'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/getting-new-images-without-decompiling.html' title='Getting new Images without decompiling the Flashgame'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-5251595704644037767</id><published>2010-08-16T21:44:00.000+02:00</published><updated>2010-08-20T16:19:41.331+02:00</updated><title type='text'>Farmville uses new image links</title><content type='html'>We received some feedback to our previous &lt;a href="http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html"&gt;post&lt;/a&gt;. Farmville changed the links to the images, we didn't recognize this, because almost every image of every item loaded using the old image url.&lt;br /&gt;&lt;br /&gt;We took the time and checked the diffrences today and we are going to explain it now.&lt;br /&gt;The old images had the form of http://static-2.farmville.com/v36206/assets/animals/animal_horse_red_icon.png, you could build them using the items.xml. For explanation look at &lt;a href="http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html"&gt;http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html&lt;/a&gt;&lt;br /&gt;The new images are now using a hashed itemname in the form&lt;br /&gt;http://static-0.farmville.com/prod/hashed/assets/animals/c5153828b93c6ea1259d7e0b7cd8c4a2.png.&lt;br /&gt;&lt;br /&gt;Our first approach was to identify a rule for generating these hashes by logic. During our tests, we recognized, that every change in the items.xml lead to a non-hashed request. The idea was: "Is Farmville using a Hashtable?". So we were looking for new files which involve these hashes, but couldn't find something.&lt;br /&gt;&lt;br /&gt;The next step was to reverse engineering the &lt;a href="http://static.farmville.com/embeds/v39886/FarmGame.release-10-08-12.39886.swf"&gt;flash file&lt;/a&gt; of today. We couldn't find any free decompiler, so we used a shareware version of &lt;a href="http://www.swf-kit.com/de/swftofla-decompiler.html"&gt;swf-kit&lt;/a&gt; to decompile it. Looking around we found the function for building the strings. &lt;br /&gt;&lt;blockquote&gt;static public final function getAssetURL(param1:String) : String {&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (AssetHashMap.hasOwnProperty(param1)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; param1 = GlobalEngine.getAssetUrl(AssetHashMap[param1]);&lt;br /&gt;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; param1 = GlobalEngine.getAssetUrl(param1);&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; return param1;&lt;br /&gt;}&lt;/blockquote&gt;We were right, FV is really using a Hashtable to map the images. The Hashmap is an object in the Displays package and has the format imageicon:hashimage and looks like this.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Display.AssetHashMap = {"assets/decorations/deco_bushgoose_icon.png":"assets/decorations/fe7cde4c1df363c2696423483e626da2.png", "assets/decorations/flags/flag_alpha_i_icon.png":"assets/decorations/flags/9cd115ac353499e998a24f25b17c8dc7.png", "assets/flowers/flower_lily_icon.png":"assets/flowers/2f2b4a9ef50f24d156e71d884fe4a336.png",&lt;br /&gt;...&lt;br /&gt;};&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We uploaded the actual Hashmap, so you can download it from &lt;a href="http://fvinternals.fv.funpic.de/codes/AssetHashMap.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The bad news are, that you have to decompile the swf on each update, to get the hashmap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-5251595704644037767?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/5251595704644037767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-uses-new-image-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5251595704644037767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/5251595704644037767'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-uses-new-image-links.html' title='Farmville uses new image links'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-7689605026543034102</id><published>2010-08-15T13:51:00.000+02:00</published><updated>2010-08-20T16:10:30.477+02:00</updated><title type='text'>Farmville AMF Request to /flashservices/gateway.php</title><content type='html'>We had a look into the Farmville Requests. Farmville is using &lt;a href="http://en.wikipedia.org/wiki/Action_Message_Format"&gt;AMF3&lt;/a&gt; to send and recieve gamedata.&lt;br /&gt;&lt;br /&gt;To deserialize this, we used an intercept proxy called &lt;a href="http://portswigger.net/proxy/"&gt;burp&lt;/a&gt;. &lt;br /&gt;We have seen that, Farmville is sending these Request to one of the gateway services.&lt;br /&gt;&lt;em&gt;http://fb-tc-[1-3].farmville.com/flashservices/gateway.php.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The deserialized AMF Request looks like. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_fZ3HPoQA7RE/TGfQmsT-eUI/AAAAAAAAAAk/fkNHltLdg7M/s1600/amf_request.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://2.bp.blogspot.com/_fZ3HPoQA7RE/TGfQmsT-eUI/AAAAAAAAAAk/fkNHltLdg7M/s640/amf_request.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We have a target and response method, which is a Flash function. the response-filed is just for identifying the response, for testing you can keep the same value.&lt;br /&gt;&lt;br /&gt;The data array is the request body, where Array 0 is containg some tokens which have to match. but can be keeped constant for the whole game. The Array 1 is the Request, which tells what to do. This one contains a sequence number, which you have to count up after every request. The functionname is triggerind the flashfunction with the parameters given above.&lt;br /&gt;&lt;br /&gt;We have chosen a basic example with less data. We just call &lt;b&gt;PregnantSowUtiliyService.onActivateSow(true)&lt;/b&gt; and this will give us the reward link, that can be shared with friends. During our tests, you can create as many Links as you want by just increasing the sequence number using the burp repeater. The function for Lostanimals is called &lt;b&gt;LonelyCowService.createLonelyAnimal&lt;/b&gt;, but for some reason you cannot generate them.&lt;br /&gt;&lt;br /&gt;It would be interesting to learn about how many functions Farmville is supporting and&amp;nbsp;what their syntax is. If&amp;nbsp;you are interested&amp;nbsp;in this question&amp;nbsp;,so we can start to build a function database for Farmville. &lt;br /&gt;On interests, just contact us.&lt;br /&gt;&lt;br /&gt;Burp can only change the value inside the AMF request, but you cannot build your own AMF packages. You cannot remove or add arrays from the body. If you know any better proxy please let us know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-7689605026543034102?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/7689605026543034102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-amf-request-to.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7689605026543034102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7689605026543034102'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-amf-request-to.html' title='Farmville AMF Request to /flashservices/gateway.php'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fZ3HPoQA7RE/TGfQmsT-eUI/AAAAAAAAAAk/fkNHltLdg7M/s72-c/amf_request.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-7167804338549897750</id><published>2010-08-15T13:06:00.000+02:00</published><updated>2010-08-20T16:08:08.433+02:00</updated><title type='text'>Viewing the Items as HTML using XSLT</title><content type='html'>The &lt;a href="http://fvinternals.blogspot.com/2010/08/gamesettingsxmlgz-itemsxmlgz-and-other.html"&gt;items.xml&lt;/a&gt; only contains the itemnames and not the displayed names insided the game. For example cow_shamrock is displayed as "Kelly Green Cow". And for some items, we wanted to know which picture is behind, or the other way round, which code is belonging to an item we have seen in Farmville.&lt;br /&gt;&lt;br /&gt;We wrote a simple XSL File to transform and filter out the items we need and display the pictures.&lt;br /&gt;A sample output from the &lt;a href="http://en.wikipedia.org/wiki/XSLT"&gt;Transformation&lt;/a&gt; with a filter for decorations without limits. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGfFZ99uibI/AAAAAAAAAAU/01bzD_8HFXg/s1600/item_xsl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGfFZ99uibI/AAAAAAAAAAU/01bzD_8HFXg/s320/item_xsl.png" /&gt;&lt;/a&gt;&lt;/div&gt;First of all, how can we get the pictures. We started a Network sniffer and looked into the traffic and saw much request to http://static-2.farmville.com/v36206/ so we took this address to and appended the path from the items.xml. The path could change, so looked into the traffic with tools like &lt;a href="http://www.wireshark.org/"&gt;wireshark&lt;/a&gt; to get the new path for the new images.&lt;br /&gt;&lt;br /&gt;We documented the Code,if you have Questions just write a comment and we can update the explanation. The code should be useable for everyone even if you don't now anything about XSL.&lt;br /&gt;&lt;br /&gt;The example code below sets a filter for all "buyable" items. Later it checks IF the item is limited, if NOT it displays the data.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGfIK6GannI/AAAAAAAAAAc/g-Pdr0otUrw/s1600/xsl_file.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="416" src="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGfIK6GannI/AAAAAAAAAAc/g-Pdr0otUrw/s640/xsl_file.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Download the file from &lt;a href="http://fvinternals.fv.funpic.de/codes/transform.xsl"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We used &lt;a href="http://saxon.sourceforge.net/#F9.2HE"&gt;SAXON&lt;/a&gt; Java version to perform this XSLT transformation.&lt;br /&gt;Usage:&lt;br /&gt;&lt;blockquote&gt;java -cp saxon9he.jar net.sf.saxon.Transform -o output.html items.xml transform.xsl&lt;/blockquote&gt;&amp;nbsp;If you open the output.html, you should see an output like the first image in this post.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-7167804338549897750?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/7167804338549897750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7167804338549897750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/7167804338549897750'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/viewing-items-as-html-using-xslt.html' title='Viewing the Items as HTML using XSLT'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGfFZ99uibI/AAAAAAAAAAU/01bzD_8HFXg/s72-c/item_xsl.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-578863306206630231</id><published>2010-08-14T18:47:00.000+02:00</published><updated>2010-08-20T16:01:55.505+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gameSettings.xml.gz unreleased farmville items 02GM'/><title type='text'>gameSettings.xml.gz items.xml.gz and other .xml.gz files in Farmville</title><content type='html'>Looking into the communication between the Farmville game and the server, i recognized that there are some files called:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://static-facebook.farmville.com/v39886/gameSettings.xml.gz"&gt;gameSettings.xml.gz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-facebook.farmville.com/v39886/items.xml.gz"&gt;items.xml.gz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-facebook.farmville.com/v39886/flashLocaleXml.xml.gz"&gt;flashLocaleXml.xml.gz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-facebook.farmville.com/v39886/crafting.xml.gz"&gt;crafting.xml.gz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://static-facebook.farmville.com/v39886/StorageConfig.xml.gz"&gt;StorageConfig.xml.gz&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;First i thought about simple gunzip packed files, but looking into the files i&amp;nbsp;found out that&amp;nbsp;there were used&amp;nbsp;ASCII strings and no binary format.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;00000000: 30 32 47 4d 65 4a 7a 74 76 57 6c 33 34 7a 69 53 02GMeJztvWl34ziS&lt;br /&gt;00000010: 4b 50 72 5a 2b 53 73 34 76 75 65 38 71 5a 70 58 KPrZ+Ss4vue8qZpX&lt;br /&gt;00000020: 61 56 6d 62 5a 64 63 34 50 53 65 39 5a 57 56 50 aVmbZdc4PSe9ZWVP&lt;br /&gt;00000030: 4f 74 4e 6a 4f 32 75 5a 4c 7a 6f 51 43 55 6b 73 OtNjO2uZLzoQCUks&lt;br /&gt;...&lt;/blockquote&gt;&lt;br /&gt;Looking into the characters i gave BASE64 i try and decoded it. Finally i got a binary file. But i still couldn't decompress it with gunzip. There must be something else. So i read about compressions in Flash applications and found that flash uses zlib. Hmm, but zlib also didn't the way. By playing around we found out that the first bytes are some kind of header. After removing the first bytes we could easily decompress it.&lt;br /&gt;&lt;br /&gt;So our final decompressing algorithmus was&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Remove magic header "02GM" from the string&lt;/li&gt;&lt;li&gt;BASE64 decode it&lt;/li&gt;&lt;li&gt;zlib decompress it&lt;/li&gt;&lt;/ol&gt;We wrote a small tool in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, you can download it from &lt;a href="http://www.python.org/download/"&gt;http://www.python.org/download/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Our Python code for decompressing the .xml.gz files, which you can download from &lt;a href="http://fvinternals.funpic.de/codes/decompress.py"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;import zlib&lt;br /&gt;import base64&lt;br /&gt;import urllib&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;def entpacken( b64string ):&lt;br /&gt;&amp;nbsp; decoded_data = base64.b64decode( b64string[4:] )&lt;br /&gt;&amp;nbsp; return zlib.decompress( decoded_data )&lt;br /&gt;&lt;br /&gt;def main():&lt;br /&gt;&amp;nbsp; file = urllib.urlopen(sys.argv[1]).read()&lt;br /&gt;&amp;nbsp; print entpacken(file)&lt;br /&gt;&lt;br /&gt;if __name__=="__main__":&lt;br /&gt;&amp;nbsp; main()&lt;/blockquote&gt;&lt;br /&gt;Running it as follows&lt;br /&gt;&lt;blockquote&gt;python decompress.py http://static-facebook.farmville.com/v39886/items.xml.gz &amp;gt; items.xml&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our Python code for compressing the .xml files, which you can download from &lt;a href="http://fvinternals.funpic.de/codes/compress.py"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;import zlib&lt;br /&gt;import base64&lt;br /&gt;import urllib&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;def packen( xml ):&lt;br /&gt;&amp;nbsp; zlibbed_str = zlib.compress( xml )&lt;br /&gt;&amp;nbsp; return "02GM" + base64.b64encode( zlibbed_str )&lt;br /&gt;&lt;br /&gt;def main(): &lt;br /&gt;&amp;nbsp; file = open(sys.argv[1], 'r').read() &lt;br /&gt;&amp;nbsp; print packen(file)&lt;br /&gt;&lt;br /&gt;if __name__=="__main__":&lt;br /&gt;&amp;nbsp; main()&lt;/blockquote&gt;&lt;br /&gt;Running it as follows&lt;br /&gt;&lt;blockquote&gt;python compress.py items.xml &amp;gt; items.xml.gz&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now we could look into this files and change the content :) Farmville is updating this files with future items like the ufo (see picture). So you can see the pictures and get the itemname before release.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGe-NAMFsPI/AAAAAAAAAAM/nkoffFruXl8/s1600/item_ufo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGe-NAMFsPI/AAAAAAAAAAM/nkoffFruXl8/s640/item_ufo.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can get decompressed XML Files version 39886 from &lt;a href="http://fvinternals.fv.funpic.de/xml/"&gt;here&lt;/a&gt;, if needed.&lt;br /&gt;&lt;br /&gt;Update: We added compiled .exe version of &lt;a href="http://fvinternals.funpic.de/codes/compress.exe"&gt;compress.exe&lt;/a&gt; and &lt;a href="http://fvinternals.funpic.de/codes/decompress.exe"&gt;decompress.exe&lt;/a&gt; for the Windows user. Then you don't need the Python files anymore. Usage is the same. Open "cmd.exe" and run it as described above. Download the &lt;a href="http://fvinternals.fv.funpic.de/codes/runtime/"&gt;Runtime Files&lt;/a&gt; else it won't run on your computer. If other files are need, please leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-578863306206630231?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/578863306206630231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/gamesettingsxmlgz-itemsxmlgz-and-other.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/578863306206630231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/578863306206630231'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/gamesettingsxmlgz-itemsxmlgz-and-other.html' title='gameSettings.xml.gz items.xml.gz and other .xml.gz files in Farmville'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fZ3HPoQA7RE/TGe-NAMFsPI/AAAAAAAAAAM/nkoffFruXl8/s72-c/item_ufo.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6420488902861342378.post-3308945377922982554</id><published>2010-08-14T18:17:00.001+02:00</published><updated>2010-08-14T18:50:58.999+02:00</updated><title type='text'>Farmville internals</title><content type='html'>Hello we started this blog, to collect and share our findings about Farmville.&lt;br /&gt;We are looking for other people, who are also interested in Farmville and its internals.&lt;br /&gt;&lt;br /&gt;Feel free to contact us at our gmail account fvinternals.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6420488902861342378-3308945377922982554?l=fvinternals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fvinternals.blogspot.com/feeds/3308945377922982554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-internals.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3308945377922982554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6420488902861342378/posts/default/3308945377922982554'/><link rel='alternate' type='text/html' href='http://fvinternals.blogspot.com/2010/08/farmville-internals.html' title='Farmville internals'/><author><name>Farmville Internals</name><uri>http://www.blogger.com/profile/06601224504787548230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry></feed>
