<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Silveira Neto &#187; Hack</title>
	<atom:link href="http://silveiraneto.net/tag/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://silveiraneto.net</link>
	<description>the world is a pixel</description>
	<lastBuildDate>Sun, 08 Jan 2012 05:17:57 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Java: Accessing Private Members</title>
		<link>http://silveiraneto.net/2009/11/14/java-accessing-private-members/</link>
		<comments>http://silveiraneto.net/2009/11/14/java-accessing-private-members/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 07:27:14 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Douglas Adams]]></category>
		<category><![CDATA[Field]]></category>
		<category><![CDATA[getclass]]></category>
		<category><![CDATA[getDeclaredField]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Object-Oriented Programming]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2942</guid>
		<description><![CDATA[Using reflection to change the accessibility of a private object field and access it at runtime. import java.lang.reflect.Field; &#160; class Life &#123; private int meaning = 42; &#125; &#160; class Hack &#123; public static void main&#40;String args&#91;&#93;&#41;&#123; Life life = new Life&#40;&#41;; try &#123; Field field = life.getClass&#40;&#41;.getDeclaredField&#40;&#34;meaning&#34;&#41;; field.setAccessible&#40;true&#41;; System.out.println&#40;field.get&#40;life&#41;&#41;; &#125; catch &#40;NoSuchFieldException e&#41; &#123; [...]]]></description>
			<content:encoded><![CDATA[<p>Using reflection to change the accessibility of a private object field and access it at runtime.</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.lang.reflect.Field</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Life <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> meaning <span style="color: #339933;">=</span> <span style="color: #cc66cc;">42</span>;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Hack <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Life life <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Life<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">Field</span> field <span style="color: #339933;">=</span> life.<span style="color: #006633;">getClass</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getDeclaredField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;meaning&quot;</span><span style="color: #009900;">&#41;</span>;
            field.<span style="color: #006633;">setAccessible</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>;
            <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>field.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>life<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">NoSuchFieldException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IllegalAccessException</span> e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Output:</p>
<blockquote><p>42</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/11/14/java-accessing-private-members/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Usando o Google como Proxy</title>
		<link>http://silveiraneto.net/2007/08/27/usando-o-google-como-proxy/</link>
		<comments>http://silveiraneto.net/2007/08/27/usando-o-google-como-proxy/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 16:52:40 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[Cache]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/2007/08/27/usando-o-google-como-proxy/</guid>
		<description><![CDATA[Eu estava procurando por &#8220;Ubuntu nis&#8221; no Google e recebo esse resultado: Busca no Google por Ubuntu e NIS Essa primeira ocorrência que apareceu no Google é um exemplo bem interessante. É um site que se propõe a tirar dúvidas de usuários através de consultores especializados. Porém se você visitar o site você não conseguira [...]]]></description>
			<content:encoded><![CDATA[<p>Eu estava procurando por &#8220;Ubuntu nis&#8221; no Google e recebo esse resultado:</p>
<p style="text-align: center"><img src="http://silveiraneto.net/wp-content/uploads/2007/08/busca_google_ubuntu_nis.jpg" alt="Busca no Google por Ubuntu e NIS" /><br />
<small>Busca no Google por Ubuntu e NIS</small></p>
<p>Essa primeira ocorrência que apareceu no Google é um exemplo bem interessante. É um site que se propõe a tirar dúvidas de usuários através de consultores especializados. Porém se você visitar o site você não conseguira visualizar conteúdo algum, é necessário um registro para poder acessar o site por um período de teste, depois é necessário pagar. O que houve aí foi uma técnica de SEO, na verdade uma fraude. Esse site identifica quando o visitante é um robô do Google indexando páginas, nesse caso ele abre suas portas e mostra que belo site ele é, cheio de informações. Porém quando um usuário comum como eu e você, que foi levado ao site através do Google, vai fazer uma visita, ele mostra suas reais intenções.</p>
<p style="text-align: center"><img src="http://silveiraneto.net/wp-content/uploads/2007/08/como_usar_cache_google.jpg" alt="Como utilizar o cache do google" /></p>
<p>Para esse site em específico a uma maneira fácil e prática de engana-lo. Basta usar o botão &#8220;Em Cache&#8221; que está logo abaixo do link no Google.</p>
<p style="text-align: center"><img src="http://silveiraneto.net/wp-content/uploads/2007/08/pagina_de_cache_do_google.jpg" alt="Página de cache do google" /></p>
<p>Isso vai te mostrar uma página exibida ao robô do Google, ou seja, a página boa. De uma certa forma, você está navegando usando um proxy já que você está recebendo uma página que foi requisitada por uma terceira pessoa. Mas isso é tudo muito estático. As coisas ficam realmente interessantes quando você pode fazer isso com um site qualquer, por exemplo um que está bloqueado para você na sua instituição ou no seu pais.</p>
<p>Você pode utilizar o <a href="http://www.google.com/translate" title="Google Translate">serviço de tradução Google</a> para repetir o processo (certamente qualquer outro tradutor funcionará). Quando eu peço para o Google traduzir de português para inglês site <em>silveiraneto.net</em> ele vai criar esta url:</p>
<blockquote><p>http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&amp;langpair=<strong>pt</strong>%7Cen&amp;hl=<strong>en</strong>&amp;ie=UTF8</p></blockquote>
<p>Quando você acessa essa url você já está utilizando um proxy, mas o conteúdo está sendo alterado. Para acessar o site e deixa-lo em português basta mexer um pouco na url, pedindo para ele traduzir de português para português:</p>
<blockquote><p>http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&amp;langpair=<strong>pt</strong>%7Cen&amp;hl=<strong>pt</strong>&amp;ie=UTF8</p></blockquote>
<p>Pronto, você está acessando o <em>Blog do Silveira</em> através de um proxy. :)</p>
<p>Generalizando, para acessar um site coloque assim:</p>
<blockquote><p>http://www.google.com/translate?u=SITE&amp;langpair=<strong>pt</strong>%7Cen&amp;hl=<strong>pt</strong>&amp;ie=UTF8</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2007/08/27/usando-o-google-como-proxy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

