<?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>swigger's BLOG &#187; flash</title>
	<atom:link href="http://www.swigger.net/archives/tag/flash/feed" rel="self" type="application/rss+xml" />
	<link>http://www.swigger.net</link>
	<description>醉卧沙场君莫笑 古来征战几人回</description>
	<lastBuildDate>Tue, 24 Jan 2012 05:34:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>被sothink swf decompiler阴了一把</title>
		<link>http://www.swigger.net/archives/44.html</link>
		<comments>http://www.swigger.net/archives/44.html#comments</comments>
		<pubDate>Sat, 28 Jun 2008 18:15:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[破解狂]]></category>
		<category><![CDATA[decompile]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[破解]]></category>

		<guid isPermaLink="false">http://www.swigger.net/?p=44</guid>
		<description><![CDATA[好久没写了，今天再灌一篇。 一个flash小游戏里的TEA算法，hack一把，结果发现，decompile出来的as，改成js运行后，得到的结果跟原游戏运算出的结果是不一样的。 心想难道js跟as有些差别？不得已，去下了一个adobe flash cs3。 发现自己快不会用flash了，还是flash5时学了几天，做了点皮毛，主要也是那时为了应付交了一下某堂课的作业。想起来当时那老师也很好心，这个flash作业给了我满分。 不过今天对flash cs3感觉 很不顺手了。一开始就遇到个问题 ，在cs3中如何使用外部类？直接写一个，报错误“类不能嵌套”，搜了一把是写在一个.as文件里，就写在一个TEA.as里。 加入代码 import TEA; 结果又报错，说TEA没有实现，查文档，原来说是要放到一个包(package)里。那就放吧，放完发现还是不对，最后看了一下flash自己的实现，终于整明白了。先建一个crypto的文件夹，在里面建个TEA.as，代码这样： package crypto{ //crypto要跟文件夹名一致。 public class TEA{ //TEA跟文件名即TEA.as一致。public好像不能少。 &#8230;//省略 } } OK，可以运行了，然后发现，其实另存为flash 8的文档，就可以直接用不放在包里的TEA.as!晕倒。 运行发现，这个flash得到的结果跟html里的js算出来是一样的。敢情从下载flash起，事情就白做了。 最后没办法，回到sothink swf decompiler中，仔细看，看到一个疑点： var _loc11 = 2.671213E+009; 为什么是这样呢？算法中不应有这样的代码。打开raw code，找到这一行：  //96 09 00 06 ef e6 e3 41 00 00 20 37  _push 2.67121e+009 对比一下其它的_push语句，发现ef e6 e3 41 00 [...]]]></description>
			<content:encoded><![CDATA[<p>好久没写了，今天再灌一篇。</p>
<p>一个flash小游戏里的TEA算法，hack一把，结果发现，decompile出来的as，改成js运行后，得到的结果跟原游戏运算出的结果是不一样的。</p>
<p>心想难道js跟as有些差别？不得已，去下了一个adobe flash cs3。</p>
<p>发现自己快不会用flash了，还是flash5时学了几天，做了点皮毛，主要也是那时为了应付交了一下某堂课的作业。想起来当时那老师也很好心，这个flash作业给了我满分。</p>
<p>不过今天对flash cs3感觉 很不顺手了。一开始就遇到个问题 ，在cs3中如何使用外部类？直接写一个，报错误“类不能嵌套”，搜了一把是写在一个.as文件里，就写在一个TEA.as里。</p>
<p>加入代码 import TEA; 结果又报错，说TEA没有实现，查文档，原来说是要放到一个包(package)里。那就放吧，放完发现还是不对，最后看了一下flash自己的实现，终于整明白了。先建一个crypto的文件夹，在里面建个TEA.as，代码这样：</p>
<p>package crypto{ //crypto要跟文件夹名一致。</p>
<p>public class TEA{ //TEA跟文件名即TEA.as一致。public好像不能少。</p>
<p>&#8230;//省略</p>
<p>}</p>
<p>}</p>
<p>OK，可以运行了，然后发现，其实另存为flash 8的文档，就可以直接用不放在包里的TEA.as!晕倒。</p>
<p>运行发现，这个flash得到的结果跟html里的js算出来是一样的。敢情从下载flash起，事情就白做了。</p>
<p>最后没办法，回到sothink swf decompiler中，仔细看，看到一个疑点：</p>
<p>var _loc11 = 2.671213E+009;</p>
<p>为什么是这样呢？算法中不应有这样的代码。打开raw code，找到这一行：</p>
<p> //96 09 00 06 ef e6 e3 41 00 00 20 37<br />
 _push 2.67121e+009</p>
<p>对比一下其它的_push语句，发现ef e6 e3 41 00 00 20 37 是一个double值。</p>
<p>写个小程序：</p>

<div class="wp_syntax"><div class="code"><pre class="outline" style="font-family:monospace;">&nbsp;
debian:~# cat t2.c
#include &lt;stdio.h&gt;
&nbsp;
int main()
{
        double d = 2.67121e+009;
        unsigned char * p = (unsigned char*)&amp;d;
&nbsp;
        int i;
        for ( i=0; i&lt;8; ++i)
        {
                printf(&quot;%02x &quot;, p[i]);
        }
        printf(&quot;\n&quot;);
        return 0;
}
debian:~# gcc t2.c 
debian:~# ./a.out
00 00 00 c2 ed e6 e3 41</pre></div></div>

<p>对比00 00 00 c2 ed e6 e3 41 与ef e6 e3 41 00 00 20 37</p>
<p>只有一点儿不同，原double值应该是00 00 20 37 ef e6 e3 41</p>
<p>好，这样： printf(“%.14g\n”, *(double*)”\x00\x00\x20\x37\xef\xe6\xe3\x41&#8243;);</p>
<p>得到： 2671212985</p>
<p>这就是正确的原flash的设定值。</p>
<p>修改一下TEA.as:</p>
<p>var _loc11 = 2.671213E+009;改为：</p>
<p>var _loc11 = 2671212985；</p>
<p>再运行一把，成功！算出来的值跟原flash是一样的，可以互相加/解密。</p>
<p>总结一下：sothink swf decompiler太土，居然不会用最恰当的方法格式化double值。bs之。</p>
<p>另外把TEA.as贴出来，版权不归我所有，是RE出来的，原作者如果有意见，请聊系本人删除。</p>
<p>hilight不支持actionscript，当就是javascript好了，反正差不多。</p>
<p>贴的这个是flash8格式，在CS3中使 用要放入一个 package里，前面说过了。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
<span style="color: #003366; font-weight: bold;">class</span> TEA
<span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">function</span> TEA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> encrypt<span style="color: #009900;">&#40;</span>src<span style="color: #339933;">,</span> key<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>key <span style="color: #339933;">||</span> key.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            key <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;9F3779B99F3779B9&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end if</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc4 <span style="color: #339933;">=</span> TEA.<span style="color: #660066;">charsToLongs</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">strToChars</span><span style="color: #009900;">&#40;</span>src<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc9 <span style="color: #339933;">=</span> TEA.<span style="color: #660066;">charsToLongs</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">strToChars</span><span style="color: #009900;">&#40;</span>key<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc8 <span style="color: #339933;">=</span> _loc4.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>_loc8 <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end if</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>_loc8 <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc4<span style="color: #009900;">&#91;</span>_loc8<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end if</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc11 <span style="color: #339933;">=</span> <span style="color: #CC0000;">2671212985</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc5<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc7<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc10 <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">6</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">52</span> <span style="color: #339933;">/</span> _loc8<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc6 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>_loc10<span style="color: #339933;">--</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc6 <span style="color: #339933;">=</span> _loc6 <span style="color: #339933;">+</span> _loc11<span style="color: #339933;">;</span>
            _loc7 <span style="color: #339933;">=</span> _loc6 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> _loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                _loc5 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>_loc2 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">5</span> <span style="color: #339933;">^</span> _loc3 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc3 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc2 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">^</span> <span style="color: #009900;">&#40;</span>_loc6 <span style="color: #339933;">^</span> _loc3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc9<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc7<span style="color: #009900;">&#93;</span> <span style="color: #339933;">^</span> _loc2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> _loc5<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
            _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            _loc5 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>_loc2 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">5</span> <span style="color: #339933;">^</span> _loc3 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc3 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc2 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">^</span> <span style="color: #009900;">&#40;</span>_loc6 <span style="color: #339933;">^</span> _loc3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc9<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc7<span style="color: #009900;">&#93;</span> <span style="color: #339933;">^</span> _loc2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> _loc5<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end while</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">charsToHex</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">longsToChars</span><span style="color: #009900;">&#40;</span>_loc4<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> decrypt<span style="color: #009900;">&#40;</span>src<span style="color: #339933;">,</span> key<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>key <span style="color: #339933;">||</span> key.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            key <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;9F3779B99F3779B9&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end if</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc4 <span style="color: #339933;">=</span> TEA.<span style="color: #660066;">charsToLongs</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">hexToChars</span><span style="color: #009900;">&#40;</span>src<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc9 <span style="color: #339933;">=</span> TEA.<span style="color: #660066;">charsToLongs</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">strToChars</span><span style="color: #009900;">&#40;</span>key<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc8 <span style="color: #339933;">=</span> _loc4.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>_loc8 <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end if</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc10 <span style="color: #339933;">=</span> <span style="color: #CC0000;">2671212985</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc6<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc7<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc12 <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">6</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">52</span> <span style="color: #339933;">/</span> _loc8<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc5 <span style="color: #339933;">=</span> _loc12 <span style="color: #339933;">*</span> _loc10<span style="color: #339933;">;</span> _loc5 <span style="color: #339933;">!=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc5 <span style="color: #339933;">=</span> _loc5 <span style="color: #339933;">-</span> _loc10<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc7 <span style="color: #339933;">=</span> _loc5 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">2</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> _loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #339933;">--</span>_loc1<span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                _loc6 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>_loc2 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">5</span> <span style="color: #339933;">^</span> _loc3 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc3 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc2 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">^</span> <span style="color: #009900;">&#40;</span>_loc5 <span style="color: #339933;">^</span> _loc3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc9<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc7<span style="color: #009900;">&#93;</span> <span style="color: #339933;">^</span> _loc2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> _loc6<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
            _loc2 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span>_loc8 <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            _loc6 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>_loc2 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">5</span> <span style="color: #339933;">^</span> _loc3 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc3 <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc2 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">^</span> <span style="color: #009900;">&#40;</span>_loc5 <span style="color: #339933;">^</span> _loc3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc9<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">^</span> _loc7<span style="color: #009900;">&#93;</span> <span style="color: #339933;">^</span> _loc2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            _loc3 <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> _loc4<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> _loc6<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">charsToStr</span><span style="color: #009900;">&#40;</span>TEA.<span style="color: #660066;">longsToChars</span><span style="color: #009900;">&#40;</span>_loc4<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> charsToLongs<span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">ceil</span><span style="color: #009900;">&#40;</span>chars.<span style="color: #660066;">length</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> _loc3.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc3<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> chars<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#91;</span>_loc1 <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> longsToChars<span style="color: #009900;">&#40;</span>longs<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> longs.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc3.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>longs<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> longs<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">8</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> longs<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">16</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">255</span><span style="color: #339933;">,</span> longs<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">24</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> charsToHex<span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc4 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> String<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;2&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;3&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;4&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;5&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;6&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;7&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;8&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;9&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;b&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;c&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;d&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;e&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;f&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> chars.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc4 <span style="color: #339933;">=</span> _loc4 <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#91;</span>chars<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;&gt;</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> _loc3<span style="color: #009900;">&#91;</span>chars<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span> <span style="color: #CC0000;">15</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> hexToChars<span style="color: #009900;">&#40;</span>hex<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> hex.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;0x&quot;</span> <span style="color: #339933;">?</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> hex.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">=</span> _loc1 <span style="color: #339933;">+</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc3.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>parseInt<span style="color: #009900;">&#40;</span>hex.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>_loc1<span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> charsToStr<span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> String<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> chars.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc3 <span style="color: #339933;">=</span> _loc3 <span style="color: #339933;">+</span> String.<span style="color: #660066;">fromCharCode</span><span style="color: #009900;">&#40;</span>chars<span style="color: #009900;">&#91;</span>_loc1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
    static <span style="color: #003366; font-weight: bold;">function</span> strToChars<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _loc3 <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> _loc1 <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> _loc1 <span style="color: #339933;">&lt;</span> str.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span>_loc1<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            _loc3.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span>_loc1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// end of for</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>_loc3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of the function</span>
<span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// End of Class</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.swigger.net/archives/44.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

