<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : Reversing Google Play and Micro-Protobuf applications</title>
	<atom:link href="http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/</link>
	<description>Projets d’un consultant en sécurité informatique</description>
	<lastBuildDate>Sat, 22 Aug 2015 12:46:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>Par : Matlink</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-770</link>
		<dc:creator>Matlink</dc:creator>
		<pubDate>Sat, 22 Aug 2015 12:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-770</guid>
		<description>Salut !
Moi je cherche à ajouter une fonctionnalité à mon script : quand on veut récupérer un jeu, parfois celui-ci contient un fichier .obb qui intègre toutes les données du jeu (souvent près d&#039;1Go). Or je n&#039;arrive pas à trouver un moyen de récupérer ce fichier (https://github.com/matlink/gplaycli/issues/6). As-tu quelques infos à ce propos ?
Merci !</description>
		<content:encoded><![CDATA[<p>Salut !<br />
Moi je cherche à ajouter une fonctionnalité à mon script : quand on veut récupérer un jeu, parfois celui-ci contient un fichier .obb qui intègre toutes les données du jeu (souvent près d&rsquo;1Go). Or je n&rsquo;arrive pas à trouver un moyen de récupérer ce fichier (<a href="https://github.com/matlink/gplaycli/issues/6" rel="nofollow">https://github.com/matlink/gplaycli/issues/6</a>). As-tu quelques infos à ce propos ?<br />
Merci !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Tuxicoman</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-715</link>
		<dc:creator>Tuxicoman</dc:creator>
		<pubDate>Mon, 19 Aug 2013 20:52:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-715</guid>
		<description>J&#039;ai publié le logiciel si tu veux voir à quoi ça ressemble : http://tuxicoman.jesuislibre.net/2013/08/googleplaydownloader-telecharger-les-apk-sans-rien-demander-a-google.html</description>
		<content:encoded><![CDATA[<p>J&rsquo;ai publié le logiciel si tu veux voir à quoi ça ressemble : <a href="http://tuxicoman.jesuislibre.net/2013/08/googleplaydownloader-telecharger-les-apk-sans-rien-demander-a-google.html" rel="nofollow">http://tuxicoman.jesuislibre.net/2013/08/googleplaydownloader-telecharger-les-apk-sans-rien-demander-a-google.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Emilien Girault</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-714</link>
		<dc:creator>Emilien Girault</dc:creator>
		<pubDate>Mon, 12 Aug 2013 08:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-714</guid>
		<description>Sympa la GUI :). Concernant l&#039;API, en fait je ne fais que récupérer ce que les serveurs de Google renvoient, et effectivement le versionString ne semble pas toujours présent. Je n&#039;ai pas compris pourquoi.
N&#039;hésite pas à forker le projet sur Github. Plusieurs personnes m&#039;ont déjà fait des pull requests, mais j&#039;avoue ne pas avoir beaucoup de temps pour les intégrer. Je préfère laisser le choix aux intéressés d&#039;intégrer ces modifs selon leurs besoins.</description>
		<content:encoded><![CDATA[<p>Sympa la GUI <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Concernant l&rsquo;API, en fait je ne fais que récupérer ce que les serveurs de Google renvoient, et effectivement le versionString ne semble pas toujours présent. Je n&rsquo;ai pas compris pourquoi.<br />
N&rsquo;hésite pas à forker le projet sur Github. Plusieurs personnes m&rsquo;ont déjà fait des pull requests, mais j&rsquo;avoue ne pas avoir beaucoup de temps pour les intégrer. Je préfère laisser le choix aux intéressés d&rsquo;intégrer ces modifs selon leurs besoins.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Tuxicoman</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-713</link>
		<dc:creator>Tuxicoman</dc:creator>
		<pubDate>Mon, 12 Aug 2013 01:02:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-713</guid>
		<description>J&#039;ai avancé. Voici l&#039;interface en cours : http://jesuislibre.net/download/wip.png

Pour l&#039;update, j&#039;utilise Androguard pour récupérer le numéro de version, il n&#039;y a pas d&#039;autre dépendances que Python apparemment pour cette fonction.

J&#039;aimerai pouvoir afficher le versionString à la place du versionCode car ca me semble plus parlant pour les utilisateurs mais il ne semble pas présent dans les résultats renvoyés par ton API. C&#039;est normal ou j&#039;ai raté un truc?</description>
		<content:encoded><![CDATA[<p>J&rsquo;ai avancé. Voici l&rsquo;interface en cours : <a href="http://jesuislibre.net/download/wip.png" rel="nofollow">http://jesuislibre.net/download/wip.png</a></p>
<p>Pour l&rsquo;update, j&rsquo;utilise Androguard pour récupérer le numéro de version, il n&rsquo;y a pas d&rsquo;autre dépendances que Python apparemment pour cette fonction.</p>
<p>J&rsquo;aimerai pouvoir afficher le versionString à la place du versionCode car ca me semble plus parlant pour les utilisateurs mais il ne semble pas présent dans les résultats renvoyés par ton API. C&rsquo;est normal ou j&rsquo;ai raté un truc?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Emilien Girault</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-712</link>
		<dc:creator>Emilien Girault</dc:creator>
		<pubDate>Sun, 11 Aug 2013 10:40:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-712</guid>
		<description>Salut,
Je ne connaissais pas RealAPKLeecher. Effectivement la feature de suivi des versions est tout à fait possible, la version disponible étant retournée par l&#039;API (appel à &lt;code&gt;details()&lt;/code&gt; puis récupération du champ &lt;code&gt;doc.details.appDetails.versionCode&lt;/code&gt; dans la réponse).
Si tu choisis l&#039;autre option, c&#039;est également faisable en inspectant le manifest de l&#039;application. Tu peux le faire à la main, mais il faut extraire l&#039;APK, convertir le manifest (XML binaire -&gt; XML simple) puis le parser. Ou bien utiliser &lt;a href=&quot;https://code.google.com/p/androguard/&quot; rel=&quot;nofollow&quot;&gt;Androguard&lt;/a&gt;, qui le fait très bien. Il y a même une &lt;a href=&quot;http://doc.androguard.re/html/apk.html#androguard.core.bytecodes.apk.APK.get_androidversion_code&quot; rel=&quot;nofollow&quot;&gt;méthode&lt;/a&gt; pour récupérer la version. L&#039;inconvénient est que l&#039;outil repose sur pas mal de &lt;a href=&quot;https://code.google.com/p/androguard/wiki/Installation#Requirements&quot; rel=&quot;nofollow&quot;&gt;dépendances&lt;/a&gt;.
Je ne me suis pas replongé dans ce projet depuis des mois, il faudra que je le mette à jour un de ces quatre pour supporter les derniers formats de message Protobuf inclus dans les dernières versions de Google Play...</description>
		<content:encoded><![CDATA[<p>Salut,<br />
Je ne connaissais pas RealAPKLeecher. Effectivement la feature de suivi des versions est tout à fait possible, la version disponible étant retournée par l&rsquo;API (appel à <code>details()</code> puis récupération du champ <code>doc.details.appDetails.versionCode</code> dans la réponse).<br />
Si tu choisis l&rsquo;autre option, c&rsquo;est également faisable en inspectant le manifest de l&rsquo;application. Tu peux le faire à la main, mais il faut extraire l&rsquo;APK, convertir le manifest (XML binaire -> XML simple) puis le parser. Ou bien utiliser <a href="https://code.google.com/p/androguard/" rel="nofollow">Androguard</a>, qui le fait très bien. Il y a même une <a href="http://doc.androguard.re/html/apk.html#androguard.core.bytecodes.apk.APK.get_androidversion_code" rel="nofollow">méthode</a> pour récupérer la version. L&rsquo;inconvénient est que l&rsquo;outil repose sur pas mal de <a href="https://code.google.com/p/androguard/wiki/Installation#Requirements" rel="nofollow">dépendances</a>.<br />
Je ne me suis pas replongé dans ce projet depuis des mois, il faudra que je le mette à jour un de ces quatre pour supporter les derniers formats de message Protobuf inclus dans les dernières versions de Google Play&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Tuxicoman</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-711</link>
		<dc:creator>Tuxicoman</dc:creator>
		<pubDate>Sun, 11 Aug 2013 00:01:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-711</guid>
		<description>Salut, je viens de découvrir ton code et c&#039;est un vrai bonheur à l&#039;utilisation. Grand merci pour ce travail !
J&#039;utilisais RealApkLauncher avant.

Une fonctionnalité manquante est la gestion automatique des mises à jours des APKs téléchargées.
Pour cela, soit il faudrait stocker dans une liste les APKs que l&#039;on veut suivre entre 2 utilisations du logiciel (ca je peux faire), soit il faudrait récupérer les infos (nom et version) dans les APKs déja téléchargées sur le disque (ca je ne sais pas faire). Qu&#039;en penses tu? 

Je pense développer une interface en wxpython pour ton API pour télécharger les APKs à la manière de RealApkLauncher. Je vais faire ça demain si j&#039;ai le temps.</description>
		<content:encoded><![CDATA[<p>Salut, je viens de découvrir ton code et c&rsquo;est un vrai bonheur à l&rsquo;utilisation. Grand merci pour ce travail !<br />
J&rsquo;utilisais RealApkLauncher avant.</p>
<p>Une fonctionnalité manquante est la gestion automatique des mises à jours des APKs téléchargées.<br />
Pour cela, soit il faudrait stocker dans une liste les APKs que l&rsquo;on veut suivre entre 2 utilisations du logiciel (ca je peux faire), soit il faudrait récupérer les infos (nom et version) dans les APKs déja téléchargées sur le disque (ca je ne sais pas faire). Qu&rsquo;en penses tu? </p>
<p>Je pense développer une interface en wxpython pour ton API pour télécharger les APKs à la manière de RealApkLauncher. Je vais faire ça demain si j&rsquo;ai le temps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Marcin</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-705</link>
		<dc:creator>Marcin</dc:creator>
		<pubDate>Mon, 03 Jun 2013 20:28:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-705</guid>
		<description>Just thought I&#039;d stop by here and mention I&#039;ve written a protobuf decoder for Burp. My extension supports loading a .proto or compiled python proto module (_pb2.py) for automatic deserialization and ability to tamper messages right from Burp.

- http://www.tssci-security.com/archives/2013/05/30/decoding-and-tampering-protobuf-serialized-messages-in-burp/
- https://github.com/mwielgoszewski/burp-protobuf-decoder</description>
		<content:encoded><![CDATA[<p>Just thought I&rsquo;d stop by here and mention I&rsquo;ve written a protobuf decoder for Burp. My extension supports loading a .proto or compiled python proto module (_pb2.py) for automatic deserialization and ability to tamper messages right from Burp.</p>
<p>- <a href="http://www.tssci-security.com/archives/2013/05/30/decoding-and-tampering-protobuf-serialized-messages-in-burp/" rel="nofollow">http://www.tssci-security.com/archives/2013/05/30/decoding-and-tampering-protobuf-serialized-messages-in-burp/</a><br />
- <a href="https://github.com/mwielgoszewski/burp-protobuf-decoder" rel="nofollow">https://github.com/mwielgoszewski/burp-protobuf-decoder</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Emilien Girault</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-692</link>
		<dc:creator>Emilien Girault</dc:creator>
		<pubDate>Mon, 22 Apr 2013 18:27:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-692</guid>
		<description>Hi, thanks for the feedback. I guess Google implements some kind of throttling in order to prevent (or slow down) the crawling process. I didn&#039;t try, so I don&#039;t know if there is a way to bypass it. But i would be careful; if you&#039;re always using the same account, Google could track all your requests and decide to block it. You should maybe throttle your requests by sleeping between each method call.</description>
		<content:encoded><![CDATA[<p>Hi, thanks for the feedback. I guess Google implements some kind of throttling in order to prevent (or slow down) the crawling process. I didn&rsquo;t try, so I don&rsquo;t know if there is a way to bypass it. But i would be careful; if you&rsquo;re always using the same account, Google could track all your requests and decide to block it. You should maybe throttle your requests by sleeping between each method call.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : paolo</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-691</link>
		<dc:creator>paolo</dc:creator>
		<pubDate>Fri, 19 Apr 2013 20:27:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-691</guid>
		<description>Excellent post...I tried scraping via Gplay web based, but recently, when I scraps Gplay, after 1 or 2 minutes, the http response message get an error (code != 200), redirect to the captcha, also if I use some proxy and a process that changes random these proxies. Do u know some way to by-pass this restriction?  Perhaps  to create a Google account inside the app process..???  I have already used a random select of user-agents..., (my code has an high level of parallel process)
thks in advance, Paolo</description>
		<content:encoded><![CDATA[<p>Excellent post&#8230;I tried scraping via Gplay web based, but recently, when I scraps Gplay, after 1 or 2 minutes, the http response message get an error (code != 200), redirect to the captcha, also if I use some proxy and a process that changes random these proxies. Do u know some way to by-pass this restriction?  Perhaps  to create a Google account inside the app process..???  I have already used a random select of user-agents&#8230;, (my code has an high level of parallel process)<br />
thks in advance, Paolo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Marko</title>
		<link>http://www.segmentationfault.fr/publications/reversing-google-play-and-micro-protobuf-applications/comment-page-1/#comment-661</link>
		<dc:creator>Marko</dc:creator>
		<pubDate>Tue, 04 Dec 2012 22:53:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=946#comment-661</guid>
		<description>Good job! I was hoping someone would provide us with a more recent .proto for Google Play. I&#039;m trying to port this to PHP now - my monologue is available at https://github.com/splitfeed/android-market-api-php/issues/12</description>
		<content:encoded><![CDATA[<p>Good job! I was hoping someone would provide us with a more recent .proto for Google Play. I&rsquo;m trying to port this to PHP now &#8211; my monologue is available at <a href="https://github.com/splitfeed/android-market-api-php/issues/12" rel="nofollow">https://github.com/splitfeed/android-market-api-php/issues/12</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
