tag:blogger.com,1999:blog-204631722024-03-21T19:30:56.574-06:00Dunno, just wasting time hehePs es el blog de Vlad :oVladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-20463172.post-24174507836398928392013-10-28T12:41:00.000-06:002013-10-28T12:43:17.335-06:00MalviajesPues sí, malviajes.<br />
<br />
De esas veces en las que hay ciertas acciones que hacen pensar que va a pasar algo, pero tu lado racional te demuestra con mucha más evidencia que te equivocas. En realidad me encanta mi lado racional, por ser precisamente racional. Siempre pienso todo muy bien y creo que la mayoría de las veces tomo una decisión acertada gracias a este pensar racional.<br />
<br />
Entonces por qué ignoro a mi lado racional? No lo debo de hacer, racional rules. Estoy consciente de que mi lado racional tiene la razón y debo seguirlo y hacerle caso. Ah, pero no... mi mente de manera estúpida logra hacer a un lado a mi lado racional y pasan cosas que no deberían ser.<br />
<br />
Y de ahí vienen los malviajes, ese pensar estúpido que trata de auto-engañarme. Por qué hacemos eso? No creo ser el único. Por qué tratar de auto-engañarnos cuando ya sabemos la verdad?<br />
<br />
En fin, solo pasaba por aquí para decirle a Vlad que si sigue así es probable que las cosas no salgan bien por no hacerme caso. Acaso no ves la evidencia? Te lo advertí Vlad, yo tenía la razón y la seguiré teniendo. Y en el remoto caso de que las cosas salgan bien, pues qué esperabas? Soy paranoico y estoy cubriendo todas las posibilidades.<br />
<br />
Date una vuelta por aquí en los siguientes meses para que me cuentes cómo te fue. Aunque yo ya sé la respuesta, DUH!Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-7271193205421817242013-08-07T12:11:00.000-05:002013-08-07T12:11:42.409-05:00Rich VS PoorAcabo de ver el siguiente video:<br />
<br />
<iframe width="560" height="315" src="//www.youtube.com/embed/fS7rbkukanA" frameborder="0" allowfullscreen></iframe>
<br />
En realidad creo que se nos olvidan cosas como estas, que en el mundo existe la pobreza extrema y hay gente que no tiene acceso a cosas tan "comunes" como agua limpia.Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-9811980360545490272013-08-04T18:43:00.001-05:002013-08-04T18:43:39.957-05:00DraftMe acabo de dar cuenta que tengo un post en borrador desde el 2008! :O<br />
<br />
En realidad no sé por qué no se publicó, es un post que estaba resumiendo todo lo que había representado para mi el año 2008. En general ese año yo lo llegué a considerar muy bueno, por lo que leo.<br />
<br />
Siempre he estado en contra de medir el tiempo, no me gusta. Si tuviera que resumir los últimos años podría decir:<br />
2008: Bueno<br />
2009: Bueno<br />
2010: Malo pero terminó bien<br />
2011: Muy mal año, se realizaron muy pocas cosas y lleno de enfermedades<br />
2012: Bueno<br />
2013: Bueno? No lo sé, se está pareciendo a 2011<br />
<br />
Si planeo hacer esto creo que debería llevar un registro de logros para cada año ya que el ranking anterior lo estoy haciendo únicamente en eventos sobresalientes (buenos o malos) que me hacen recordar dicho año.<br />
<br />
En fin, ahí está el post en borrador y no creo que lo vaya a publicar.Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-55317514732629786162013-08-04T18:37:00.000-05:002013-08-04T18:37:03.699-05:00Take for granted"Take for granted", es una frase que se usa mucho en USA y que se podriá traducir vagamente como "dar por hecho" o "tomar por hecho" o algo así.<br />
<br />
La idea básica de ese concepto es que muchas veces no apreciamos ciertas cosas porque siempre las hemos tenido. Por decir algo, habrá gente que en realidad nunca aprecia la energía eléctrica simplemente porque en nuestra actualidad tener energía eléctrica es prácticamente un hecho. Entonces cuando hay algún apagón o por alguna razón no contamos con dicha energía es cuando en realidad nos damos cuenta de la mucha falta que nos hace.<br />
<br />
Algo que vemos tan normal como el hecho de poder caminar podría resultarnos algo tan sencillo que nunca nos hemos puesto a analizarlo. Creo que una de las cosas que más damos por hecho es nuestra salud. En general estamos acostumbrados a llevar nuestras vidas tranquilamente sin preocuparnos mucho acerca de nuestro cuerpo.<br />
<br />
Pero qué pasa cuando nos enfermamos? Entonces ahí es cuando en realidad nos damos cuenta de la falta que nos hace nuestro mismo cuerpo y todos nuestros sentidos!<br />
<br />
En español existe la frase de que "no sabemos lo que tenemos hasta que lo perdemos", y creo que va relacionada con este tema.<br />
<br />
Para el récord esto no tiene nada que ver con nadie y es enteramente relacionado a nuestra salud, así que por favor detengan su paranoia antes de que comience a darles ideas.Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-18349786250355711952013-07-21T18:58:00.002-05:002013-07-21T18:58:59.298-05:00Bleed it Out<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/TAyJzWxejfE?feature=player_detailpage" width="640"></iframe>Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-34908363231990680972013-07-08T15:38:00.000-05:002013-07-08T15:38:05.166-05:00Rational vs rationalizationCreo que ya había escrito alguna vez sobre las diferencias entre que algo fuera "racional" o convertirlo en racional a través de la "racionalización", pero creo que es un buen momento de retomar este tema.<br />
<br />
Inicialmente este tema lo escuché en un episodio de House, honestamente no recuerdo en cuál fue... ni siquiera en qué temporada. Lo interesante es que se me quedó muy grabada la diferencia entre estos dos conceptos. Trataré de resumirlos desde mi perspectiva:<br />
<br />
Racional: es aquél hecho que tiene sentido, que es lógico. Como seres humanos, el único animal racional, se supondría que los actos racionales son aquellos que se pensaron y no están basados en las emociones (mi entendimiento muy simplificado, siéntanse libres de corregirme en los comentarios).<br />
<br />
Racionalización: esta acción la aplicamos cuando se desea justificar un acto que no es racional. Por ejemplo si golpeas a alguien en la calle podrías tratarlo de explicar con algún tipo de lógica o pensamiento para explicarlo.<br />
<br />
Estos conceptos son muy raros, si se supone que somos animales racionales, por qué habríamos de cometer actos no racionales y por ende necesitar de la racionalización?<br />
<br />
La realidad es que no somos tan racionales como nos lo han dicho o nos gustaría serlo, desde mi punto de vista nunca dejaremos de ser influenciados por nuestra parte no racional. Es ahí donde entra el auto-control, disciplina y fuerza de voluntad. Pero de nuevo, por qué habríamos de necesitar dicho auto-control si siempre hemos sido racionales? Creo que nunca lo entenderé. Sin embargo ahí es donde se puede observar cuando una persona es muy racional, cuando todas las acciones que comete están fundadas en pensamientos lógicos y fueron evaluadas considerablemente.<br />
<br />
Y entonces, eres una persona racional o alguien que continúa aplicando la racionalización constantemente? Peor aún podría ser aquellos que ni siquiera tienen la sutileza de intentar la racionalización y son controlados totalmente por su lado no racional.<br />
<br />
VladVladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-79722770084631551052013-05-16T20:32:00.000-05:002013-05-16T20:37:39.800-05:00Hacking Candy Crush 2: No need for tickets<br />
<div>
Hi everyone,</div>
<div>
<br /></div>
<div>
As you may have noticed, you need a few tickets in order to access to a new world in Candy Crush. That can be very annoying if there's nobody online to give you tickets and you want to keep playing and of course you don't want to pay for them. In this post I will show you how to avoid getting asked for tickets.</div>
<div>
<br /></div>
<div>
If you have not seen my previous post you should take a look at it first since the initial steps are described there: <a href="http://vladkov.blogspot.mx/2013/04/hacking-candy-crush-in-10-minutes.html" target="_blank">hacking Candy Crush in 10 minutes</a>.</div>
<div>
<br /></div>
<div>
Once you have access to your device file system, open this file for edition:</div>
<div>
<span style="color: red;"><b>candycrushsaga.app/res/worlds.xml</b></span>, it should look similar to the following image:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-_U_CJWo4SS7wE1NwXWdMOeR8LyK2AnIqyLgoLjmpxn1Z9JqPZyWvloX1IeKK6H8zOjJG_J9juckPbved2_JoirUOyPCS-Vpx0EnL0dOsH7YeS0RrvoTGZYxAr_ugEt-kB5Fs/s1600/Screen+Shot+2013-05-16+at+8.18.36+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-_U_CJWo4SS7wE1NwXWdMOeR8LyK2AnIqyLgoLjmpxn1Z9JqPZyWvloX1IeKK6H8zOjJG_J9juckPbved2_JoirUOyPCS-Vpx0EnL0dOsH7YeS0RrvoTGZYxAr_ugEt-kB5Fs/s320/Screen+Shot+2013-05-16+at+8.18.36+PM.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<div>
<ol>
<li>For this example let's assume you are stuck in level 230 and you need 3 tickets to get to level 231. Open the previous file and find the following text:<br /><pre><world imagepath="tex/menu/level_completed_train.png" </pre>
<pre>startswithlevel="<span style="color: red;"><b>231</b></span>" </pre>
<pre>ticketpath="tex/menu/world/ticket_train_icon.png"></world></pre>
</li>
<li>Modify the previous text to:<br /><pre><world imagepath="tex/menu/level_completed_train.png" </pre>
<pre>startswithlevel="<span style="color: red;"><b>230</b></span>" </pre>
<pre>ticketpath="tex/menu/world/ticket_train_icon.png"></world></pre>
</li>
<li>Terminate the Candy Crush application and open it again. If you try to play at this point you won't be able to select any level, but don't be scared as this can be fixed. Go back to edit the worlds.xml file and restore it to it's original value, like this:<br /><pre><world imagepath="tex/menu/level_completed_train.png" </pre>
<pre>startswithlevel="<span style="color: red;"><b>231</b></span>" </pre>
<pre>ticketpath="tex/menu/world/ticket_train_icon.png"></world></pre>
</li>
<li>Save the file, terminate the application and open it again. Voila! The game will not ask for tickets and you will advance to the next world, just like that!</li>
</ol>
</div>
<div>
<br /></div>
<div>
This technique can be used to move from any world to the next one by modifying the "startsWithLevel" value. Good crushing!</div>
<div>
<br /></div>
<div>
Notes:</div>
<div>
1) Again, this is not a complete assessment of the application's security. I just keep digging as I get stuck and keep finding useful things.</div>
<div>
2) The communications from the device have not been analyzed at this point, I can imagine lots of fun stuff can be found there as well.</div>
</div>
Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-3166948216153848602013-04-15T19:00:00.002-05:002013-04-16T13:58:11.674-05:00Hacking Candy Crush In 10 Minutes<div>
<br /></div>
I became addicted to this <a href="https://itunes.apple.com/us/app/candy-crush-saga/id553834731" target="_blank">Candy Crush game</a> a few weeks ago and I was doing great, I was able to almost reach level 200 until I was stuck. I was stuck there for about two weeks. I almost uninstalled the damn game... but there was something else I could try! I had nothing to lose so I gave it a try; and guess what? I was successful n.n<br />
<br />
I will show you how you can modify each and every level you like on Candy Crush, you can get all the time and moves you like and more! Of course this is for educational purposes only, obviously.<br />
<br />
So here's what you'll need:<br />
<br />
<ol>
<li>A jailbroken iDevice (I used an iPod touch 4G on iOS 6.1.3, but any iDevice will do)</li>
<li>A computer in the same wireless network as your iDevice (optional)</li>
<li>WiFi network, of course</li>
</ol>
<br />
If your device is not already jailbroken you can refer to <a href="http://jailbreaknation.com/">jailbreaknation.com</a><br />
<br />
Alright, so let's get started. I will not cover the steps needed to connect to a jailbroken device as that has been covered many times by a bunch of people:<br />
<br />
<br />
<ol>
<li><a href="http://cydia.saurik.com/openssh.html" target="_blank">Enable SSH access on your device</a>.</li>
<li>Access to your device over SFTP, you can use any client such as <a href="http://cyberduck.ch/" target="_blank">Cyberduck</a> or <a href="http://winscp.net/eng/index.php" target="_blank">WinSCP</a> on windows.</li>
<li>Locate the candy crush application folder and navigate to it.</li>
<li>Access to the following directory $CandyCrush.app/res/levels/</li>
<li>Voila! The following files will be displayed:</li>
</ol>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqb5y4pMz7I0Qg4APqHqiKu7VAbsCSNwR49tp7a5MHiCS3_blRsL85SOnkAKwpfEingMhI-KhOFOIwqBbh9aPPeZMeRWxZlM2b1lTB5f2dYEW8ak-stbCve4EsrC5Jv8X7t_uj/s1600/Screen+Shot+2013-04-15+at+6.25.11+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqb5y4pMz7I0Qg4APqHqiKu7VAbsCSNwR49tp7a5MHiCS3_blRsL85SOnkAKwpfEingMhI-KhOFOIwqBbh9aPPeZMeRWxZlM2b1lTB5f2dYEW8ak-stbCve4EsrC5Jv8X7t_uj/s640/Screen+Shot+2013-04-15+at+6.25.11+PM.png" width="640" /></a>
<br />
As you can imagine, each one of those files represents a level in the game. Each file contains the needed configuration to load a game, they are the settings of the game if you will. What settings? Well, let's take a look at one file. Let's edit <b>episode3level7.txt</b>, open it and you will see the contents of the file as follows:<br />
<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">{"gameModeName":"Classic","scoreTargets":[40000,60000,100000],<b><span style="color: red;">"timeLimit":60</span></b>,<span style="color: red;"><b>"numberOfColours":5</b></span>,"randomSeed":0,"protocolVersion":"0.1","tileMap":[[112,18,18,18,18,18,18,18,112],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,2,2,2,2,2,2,2,96],[96,96,96,96,96,96,96,96,96]],"portals":[]}</span><br />
<div>
<br /></div>
<br />
<br />
There's lot of info there, but let's focus on the highlighted text. Some properties are very self-explanatory. Let's say that you want to have more time on the level... that's simple, just increase 60 to 120 in the line after <b>timeLimit</b>. These values represent the number of seconds you have in the level.<br />
<br />
Are you having issues making color combinations? No problem, you can set the <b>numberOfColours</b> to 3 instead of 5 and as you can imagine you will have only 3 colors to match instead of 5.<br />
<br />
So you can get and idea of what this does, here's the game level (level 27) before and after modifying the configuration file:<br />
<br />
Before:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4hcSksvcYi6zxy60wtddmU5f_V7SLCUrzp2dMx0_VTZYFEQw9H7gdsRI8CVPIFbWWIs2LdccFQNZBHSJPKn-taFTMujawM731SbiIbqWym1vv84ftlqoa2zCZcxUdsRdQwCnb/s1600/IMG_0032.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4hcSksvcYi6zxy60wtddmU5f_V7SLCUrzp2dMx0_VTZYFEQw9H7gdsRI8CVPIFbWWIs2LdccFQNZBHSJPKn-taFTMujawM731SbiIbqWym1vv84ftlqoa2zCZcxUdsRdQwCnb/s400/IMG_0032.PNG" width="266" /></a></div>
<br />
<br />
After:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJbzjCFK90XJyYwE75O4aLHC_B6ErfPj8q4ZVd6AEW2LCUSTxQj-uM_C6pau4z06AkGkXVhn_lOHZsKeu3E_YG79UKZScx6qrp_rW_5VND_rD3m7StwE5n319P2w1eLNQqCuFe/s1600/IMG_0033.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJbzjCFK90XJyYwE75O4aLHC_B6ErfPj8q4ZVd6AEW2LCUSTxQj-uM_C6pau4z06AkGkXVhn_lOHZsKeu3E_YG79UKZScx6qrp_rW_5VND_rD3m7StwE5n319P2w1eLNQqCuFe/s400/IMG_0033.PNG" width="266" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6JnfTBS_6g-SPBPLXRSaC78q3JeuiqU6UYzwl2NKH-26uOjQTRgFz8ZTBAxp0D7KW2YAcY8oGKkXcOwcsMEdXIdi9CoL_oRUfPCu0a0l4aNXG09eITv9_x0l6tyerDdysTHDQ/s1600/IMG_0035.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6JnfTBS_6g-SPBPLXRSaC78q3JeuiqU6UYzwl2NKH-26uOjQTRgFz8ZTBAxp0D7KW2YAcY8oGKkXcOwcsMEdXIdi9CoL_oRUfPCu0a0l4aNXG09eITv9_x0l6tyerDdysTHDQ/s400/IMG_0035.PNG" width="266" /></a><br />
<br />
There you go! <b>377 thousand points in 6 seconds!</b> So that's it, this didn't take more than 10 minutes and now I was able to modify any level at will.<br />
<br />
Enjoy!<br />
<br />
Notes:<br />
-After modifying a file you have to terminate the application in your device and open it again so the configuration files are re-loaded.<br />
-There are tons of more properties that can be modified, the two shown above are just examples.<br />
-There could be more useful information in the file system, I am guessing they also store your current level, boosters and more. I did not go that far as I quickly found what I needed.<br />
-A computer is not really needed to edit the files, that could be done locally with an app such as iEdit. However, that's really annoying. Using a computer for edition is really easy.<br />
<br />
<br />Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com1tag:blogger.com,1999:blog-20463172.post-48857607531326575202013-04-15T18:09:00.000-05:002013-04-15T18:09:00.609-05:00I never blogYeah, as you may have noticed I rarely blog about something... I am not a blogger as you can see but from time to time I'd like posting something.<br />
<br />
So, enjoyVladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-57702437938819231952012-02-06T01:10:00.001-06:002012-02-06T13:19:46.526-06:005 years today<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Pues sí, hace ya 5 años que empecé una nueva "aventura". Inicié mi primer trabajo! (Bueno, osea antes ya había trabajado y estado en servicio social y cosas así... pero a lo que me refiero es que es el primer trabajo formal y serio!).</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">El primer trabajo en el que tenía que ir y estar al menos 7 horas... y esto era después de que ya había estado toda la mañana en la universidad (empecé desde 8vo :/). En realidad sí me emocionaba mucho la idea, aunque a decir verdad me sentía un poco intimidado.</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Bueno X, no voy a hablar mucho de cómo inició todo... el punto que quiero dejar claro es que en realidad ese trabajo me ha dado mucho! He crecido muchísimo como persona en lo profesional y también creo que en mis relaciones interpersonales con los compañeros (y también he crecido en masa corporal lol). Me ha permitido viajar literalmente al otro lado del mundo, conocer a muchísima gente, darme cuenta que los pendejos existen en todos lados, taaaaantas y tantas cosas que han pasado en estos 5 años.</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">No sé si fue coincidencia, pero la stalker de mi ex me encontró ahí de nuevo xD Por fin anduvimos y a pesar de todo honestamente también creo que fue una etapa muy chida! (sí, dije a pesar de TODO)</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">También he hecho amigos, no les voy a decir que son así mis BFFs foreva... nah, tampoco. Pero he conocido gente que realmente vale la pena estar en contacto y eso. Y claro, gente que no me gustaría volverme a topar en toda mi vida.</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Pero también está la otra parte, también le he dado mucho de mi para la empresa... en realidad sí creo que ha sido una "relación" muy fructífera para ambos! Tanto la empresa como yo nos hemos beneficiado mucho de la sociedad :P</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Y aunque he estado a punto de decir:"FUCK U" e irme a otro lado... honestamente lo acepto, me da gusto no haberlo hecho. Me da gusto el haberme quedado y francamente creo que todavía tengo mucho que darle a esa empresa antes de que me aburra. </span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Así que pues no sé por qué hoy decidí ponerme a bloggear acerca de esto. Como se pueden dar cuenta casi nunca bloggeo xD Pero pues no sé, 5 años es mucho tiempo! Y se me han pasado súper rápido! En serio que sí! :S</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">En fin, no sé cuánto tiempo más vaya a estar en esa empresa... normalmente la gente llega y se va muy rápido de ahí. Pero por alguna extraña razón yo me he quedado.</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;"><br />
</span><br />
<span style="font-family: Georgia,'Times New Roman',serif; font-size: small;">Weno, me retiro antes de que los aburra más... y mañana a seguir trabajando como buen workaholic que soy.</span>Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-50088871137647120862011-02-14T14:03:00.001-06:002011-02-14T14:04:56.148-06:00¿Cómo sé si tengo un script malicioso en mis páginas web?<div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Hola a todos,</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Estoy desempolvando este blog con motivo de una pregunta que me hizo <a href="https://twitter.com/Dary_Urias">@Dary_urias</a> en twitter, la cual decía: <b>Que herramienta puedo utilizar para saber si tengo un script malicioso en mis paginas web?</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Para poder responder esa pregunta, me gustaría en primer lugar definir qué es un script malicioso: se le puede considerar así a cualquier secuencia de líneas de código que realicen una acción no deseada por el usuario o no legítima (me acabo de inventar esa definición :p)</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Por simplicidad supongamos que tenemos http://www.sitio.com que es una aplicación web en PHP. Para poder detectar un script debemos saber cómo es que llegó dicho script a nuestro sitio, les presento las opciones principales que he visto:</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>1) Introducido en el código PHP por el webmaster / atacante:</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Lo importante es darse cuenta que la aplicación ("aplicativo", sitio web, página, etc, como gusten llamarle) ha sido modificada de tal manera que se está haciendo algo no deseado por el usuario. </span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">A menos de que el código realice alguna acción del lado del cliente (en el browser, con código HTML y/o javascript), no hay forma de detectarlo a menos que se haga una revisión manual línea por línea del código en busca de algo "sospechoso". Podríamos suponer que el atacante está enviándose datos del usuario usando la función mail() de PHP. Dicha acción sería completamente transparente para el usuario/browser y nunca se daría cuenta (aún un usuario avanzado, o inclusive el administrador del sistema)</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>¿Entonces cómo lo detecto?</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Es prácticamente imposible, la única manera es revisar el código fuente línea por línea.</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>2) Introducido en código PHP, pero hace uso de HTML/JS </b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Pero qué pasa si el atacante está haciendo uso de HTML? Digamos, insertó dentro de PHP un código que hace que se le imprima al usuario un tag de imagen (<img />), algún iframe o alguna función de JavaScript.</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Este escenario es diferente del anterior debido a que en este caso el usuario/browser si se dará cuenta de lo que está pasando (aunque no sea aparente a la vista). Al insertar este tipo de código HTML se busca hacer llamadas hacia sitios externos con un fin determinado, como lo pueden ser robo de sesión o ejecutar acciones a nombre del usuario. </span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>¿Cómo lo detecto?</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Este es el más simple de los casos, puedes analizar los requests HTTP que hace tu sitio y si se llegara a detectar un request hacía otro dominio ahí lo tienes. Existen muchas herramientas (proxies y plugins) que podrían ayudar. En lo personal recomiendo <a href="https://addons.mozilla.org/en-US/firefox/addon/firebug/">Firebug</a> para Firefox.</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">En esta imagen se muestra que en firebug al entrar a twitpic.com se hacen varios requests hacía otros sitios como lo son google.com y twitter (salen en rojo porque los bloquea el proxy corporativo xD pero esa es la idea jo jo). De esta manera se podrían dar cuenta si se está haciendo una llamada hacia un sitio externo y así determinar un probable script malicioso.</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhouKc-EHwXuc5f_RBLMdaf_7SN5CyOTl2LIEYIb2zuEFLIX4QGOepbGu556q3j20Ro2ncOWPqThmDFLpUbkKGrYqo32knfZC45jsVBn7REeMrgGAz3crVFHb9D_O41Ilbq9qpu/s1600/firebug.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhouKc-EHwXuc5f_RBLMdaf_7SN5CyOTl2LIEYIb2zuEFLIX4QGOepbGu556q3j20Ro2ncOWPqThmDFLpUbkKGrYqo32knfZC45jsVBn7REeMrgGAz3crVFHb9D_O41Ilbq9qpu/s320/firebug.PNG" width="320" /></a></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>3) Introducido por el usuario (cross-site scripting)</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">En este punto asumiré que conocen lo que es un <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a>, así que al tener una vulnerabilidad de este tipo el código de la aplicación nunca se modificó y fue posible que un atacante introdujera dicho script gracias a una funcionalidad misma de la aplicación. Digamos una sección de comentarios (o un blog xD)</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>¿Cómo lo detecto/soluciono?</b></span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Se puede aplicar el mismo principio que en el caso anterior para detectar llamadas a sitios externos y es mucho más simple de eliminar, únicamente se borra el registro en la base de datos y listop. (claro, se tendría que modificar la aplicación para que no vuelva a ocurrir dicho ataque pero eso ya lo dejamos para otro post :P)</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">-------------------------------------------</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Espero haber resuelto la duda de @Dary_urias, lamento si hice esto un poco técnico pero así era necesario D: Cualquier cosa me pueden encontrar en @vladkov y pues claro que en las sección de comentarios de este blog mismo</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">C ya!</span></div>Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com1tag:blogger.com,1999:blog-20463172.post-42826297860373685402008-10-20T20:52:00.001-05:002008-10-20T21:01:22.132-05:00NetBeansHello there,<br /><br />I know I haven't post anything else on this blog but that was mainly because I already had a host and a domain so I used that blog instead of this, oh well... guess what? My domain expired and I couldn't afford the renewal :(<br /><br />Anyway, this post is not for complaining about stuff hehe... this one is about NetBeans, yes! NetBeans! I remember the first time I saw this beautiful software, I hated it xD haha... that thing was soooo slow and it just was eating all the computer resources, I thought it wasn't worth it.<br /><br />But guess what? I decided to gave it a chance and when I saw all the time and effort that it was saving me (even thought it was a little bit slow), it was reaaally worth it! :D I used for the very first time on a college project, I was doing a little ERP software with both desktop and web applications working together. I did this for a project that I submitted to a contest, and guess what? I won the second place in the whole college :) Not bad for a "noob" huh?<br /><br />And that's my history, that's when I knew that I was gonna use NetBeans for a very long time :)<br /><br />Oh, and of course... happy bday NetBeans! :D<br /><br />C ya.Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0tag:blogger.com,1999:blog-20463172.post-1136268100956584682006-01-03T00:00:00.000-06:002006-01-03T00:01:40.966-06:00Un Blog we :oPs no sé, no tenía nada que hacer... bueno no, siempre tengo algo que hacer jeje, pero ps estaba viendo unos blogs y como que quise sacar uno aquí... aunque ya tengo el de msn, y puedo poner una de estas cochinadas para hacer blogs en mi web pero ps... sabe jeje<br /><br />Cámara.Vladhttp://www.blogger.com/profile/13545361466077447653noreply@blogger.com0