宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 4578|回复: 8

[页游辅助图文教程] TX牧场出新加密算法PastureKey,c#实现方法

[复制链接]
  • TA的每日心情
    开心
    2024-12-9 18:45
  • 签到天数: 124 天

    [LV.7]常住居民III

    admin 发表于 2010-5-2 22:46:45 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    拿起工具,反编译swf文件,一看……

    找全算法相关的as脚本如下:

    1. view plaincopy to clipboardprint?
    2. var by:String = "0123456789abcdef";   
    3.   
    4. function encode(param1:String) : Array   
    5.         {   
    6.             var _loc_2:Array = new Array();   
    7.             var _loc_3:Number = param1.length * 8;   
    8.             var _loc_4:Number = 255;   
    9.             var _loc_5:Number = 0;   
    10.             while (_loc_5 < _loc_3)   
    11.             {   
    12.                 //trace((_loc_5>>5)+"=loc5");   
    13.                 var a =  _loc_2[_loc_5 >> 5];   
    14.                 var b = (param1.charCodeAt(_loc_5 / 8) & _loc_4);   
    15.                 _loc_2[_loc_5 >> 5] = (a | b << (24 - _loc_5 % 32));   
    16.                 _loc_5 = _loc_5 + 8;   
    17.             }   
    18.             _loc_2[_loc_3 >> 5] = _loc_2[_loc_3 >> 5] | 128 << 24 - _loc_3 % 32;   
    19.             _loc_2[(_loc_3 + 64 >> 9 << 4) + 15] = _loc_3;   
    20.             return _loc_2;   
    21.         }// end function   
    22.            
    23.            
    24.            
    25. function f(param1:Number, param2:Number, param3:Number, param4:Number) : Number   
    26.         {   
    27.             if (param1 < 20)   
    28.             {   
    29.                 return param2 & param3 | ~param2 & param4;   
    30.             }   
    31.             if (param1 < 40)   
    32.             {   
    33.                 return param2 ^ param3 ^ param4;   
    34.             }   
    35.             if (param1 < 60)   
    36.             {   
    37.                 return param2 & param3 | param2 & param4 | param3 & param4;   
    38.             }   
    39.             return param2 ^ param3 ^ param4;   
    40.         }// end function   
    41.   
    42.         function Uz(param1:Number) : Number   
    43.         {   
    44.             if (param1 < 20)   
    45.             {   
    46.                 return 1518500249;   
    47.             }   
    48.             if (param1 < 40)   
    49.             {   
    50.                 return 1859775393;   
    51.             }   
    52.             if (param1 < 60)   
    53.             {   
    54.                 return 2400959708;   
    55.             }   
    56.             return 3395469782;   
    57.         }// end function   
    58.            
    59.            
    60.            
    61.         var int1;   
    62.         var int2;   
    63.         var int3;   
    64.         var int4;   
    65.         var int5;   
    66.            
    67. function encode2(param1:Array) : Array   
    68.         {   
    69.             var _loc_11:Number = 0;   
    70.             var _loc_12:Number = 0;   
    71.             var _loc_13:Number = 0;   
    72.             var _loc_14:Number = 0;   
    73.             var _loc_15:Number = 0;   
    74.             var _loc_16:Number = 0;   
    75.             var _loc_17:Number = 0;   
    76.             var _loc_2:Number = 1732584193;   
    77.             var _loc_3:Number = 4023233417;   
    78.             var _loc_4:Number = 2562383102;   
    79.             var _loc_5:Number = 271733878;   
    80.             var _loc_6:Number = 3285377520;   
    81.             var _loc_7:Number = param1.length;   
    82.             var _loc_8:Array = new Array(80);   
    83.             var _loc_9:Number = 0;   
    84.             while (_loc_9 < _loc_7)   
    85.             {   
    86.                   
    87.                 _loc_11 = _loc_2;   
    88.                 _loc_12 = _loc_3;   
    89.                 _loc_13 = _loc_4;   
    90.                 _loc_14 = _loc_5;   
    91.                 _loc_15 = _loc_6;   
    92.                 _loc_16 = 0;   
    93.                 while (_loc_16 < 80)   
    94.                 {   
    95.                        
    96.                     if (_loc_16 < 16)   
    97.                     {   
    98.                         _loc_8[_loc_16] = param1[_loc_9 + _loc_16];   
    99.                         //trace(_loc_2+"<>"+_loc_17);   
    100.                     }   
    101.                     else  
    102.                     {   
    103.                         var bb = _loc_8[_loc_16 - 3] ^ _loc_8[_loc_16 - 8] ^ _loc_8[_loc_16 - 14] ^ _loc_8[_loc_16 - 16];   
    104.                            
    105.                         _loc_8[_loc_16] = mv(bb, 1);   
    106.                            
    107.                            
    108.                     }   
    109.                        
    110.                     var cc = f(_loc_16, _loc_12, _loc_13, _loc_14) ;   
    111.                     var dd = Uz(_loc_16);   
    112.                     //trace("cc["+cc+"]dd["+dd+"]");   
    113.                     _loc_17 = mv(_loc_11, 5) + cc + _loc_15 + int(_loc_8[_loc_16]) + dd;   
    114.                     //trace("_loc_17="+_loc_17);   
    115.                     _loc_15 = _loc_14;   
    116.                     _loc_14 = _loc_13;   
    117.                     _loc_13 = mv(_loc_12, 30);   
    118.                     trace(_loc_16+","+_loc_12+","+_loc_13+","+_loc_14+",_loc_12="+_loc_12);   
    119.                     _loc_12 = _loc_11;   
    120.                     _loc_11 = _loc_17;   
    121.                        
    122.                     _loc_16++;   
    123.                 }   
    124.                   
    125.                 _loc_2 = _loc_2 + _loc_11;   
    126.                 _loc_3 = _loc_3 + _loc_12;   
    127.                 _loc_4 = _loc_4 + _loc_13;   
    128.                 _loc_5 = _loc_5 + _loc_14;   
    129.                 _loc_6 = _loc_6 + _loc_15;   
    130.                 _loc_9 = _loc_9 + 16;   
    131.                 //trace("_loc_9=="+_loc_9+",_loc_7="+_loc_7);   
    132.             }   
    133.             var _loc_10:Array = new Array();   
    134.             //new Array().writeInt(_loc_2);   
    135.             _loc_10.push(_loc_3);   
    136.             _loc_10.push(_loc_4);   
    137.             _loc_10.push(_loc_5);   
    138.             _loc_10.push(_loc_6);   
    139.             //_loc_10.position = 0;   
    140.             //_-TP = new ByteArray();   
    141.             //_-TP.writeBytes(_loc_10);   
    142.             //_-TP.position = 0;   
    143.             int1 = _loc_2;   
    144.             int2 = _loc_3;   
    145.             int3 = _loc_4;   
    146.             int4 = _loc_5;   
    147.             int5 = _loc_6;   
    148.                
    149.             trace(_loc_2+","+_loc_3+","+","+_loc_4+","+_loc_5+","+_loc_6);   
    150.             return _loc_10;   
    151.         }// end function   
    152.            
    153.            
    154.            
    155.            
    156.            
    157.            
    158. function getPastureKey(param1:Number):String{   
    159.           var _loc_6:Number = 0;   
    160.             var _loc_2:String = "97b2d!@0b8f1@&%#$xsf";   
    161.             var _loc_3:String = _loc_2.substr(param1 % 10, 100);   
    162.             var _loc_4:Array = encode(param1 + _loc_3);   
    163.             var _loc_5:Array = encode2(_loc_4);   
    164.             trace(int1+"===");   
    165.             trace(int2+"===");   
    166.             trace(int3+"===");   
    167.             trace(int4+"===");            
    168.             trace(int5+"===");            
    169.                
    170.             return method1(int1, true) + method1(int2, true) + method1(int3, true) + method1(int4, true) + method1(int5, true);   
    171.   
    172. }   
    173.            
    174.            
    175.            
    176.   
    177.            
    178. function method1(param1:Number, param2:Boolean) : String   
    179.         {   
    180.             var _loc_4:Number = 0;   
    181.             var _loc_5:Number = 0;   
    182.             var _loc_3:String = "";   
    183.             if (param2)   
    184.             {   
    185.                 _loc_4 = 0;   
    186.                 while (_loc_4 < 4)   
    187.                 {   
    188.                        
    189.                     _loc_3 = _loc_3 + (by.charAt(param1 >> (3 - _loc_4) * 8 + 4 & 15) + by.charAt(param1 >> (3 - _loc_4) * 8 & 15));   
    190.                     _loc_4++;   
    191.                 }   
    192.             }   
    193.             else  
    194.             {   
    195.                 _loc_5 = 0;   
    196.                 while (_loc_5 < 4)   
    197.                 {   
    198.                        
    199.                     _loc_3 = _loc_3 + (by.charAt(param1 >> _loc_5 * 8 + 4 & 15) +by.charAt(param1 >> _loc_5 * 8 & 15));   
    200.                     _loc_5++;   
    201.                 }   
    202.             }   
    203.             return _loc_3;   
    204.         }// end function   
    205.   
    206.            
    207.            
    208. function  mv(param1:Number, param2:Number) : Number   
    209. {   
    210.     var aa = param1 << param2 | param1 >>> (32 - param2);   
    211.     //trace(param1+"========="+param2+"======aa============="+aa);   
    212.     return aa;   
    213. }// end function   
    214.            
    215.          
    216. var by:String = "0123456789abcdef";
    217. function encode(param1:String) : Array
    218.         {
    219.             var _loc_2:Array = new Array();
    220.             var _loc_3:Number = param1.length * 8;
    221.             var _loc_4:Number = 255;
    222.             var _loc_5:Number = 0;
    223.             while (_loc_5 < _loc_3)
    224.             {
    225.                 //trace((_loc_5>>5)+"=loc5");
    226.     var a =  _loc_2[_loc_5 >> 5];
    227.     var b = (param1.charCodeAt(_loc_5 / 8) & _loc_4);
    228.                 _loc_2[_loc_5 >> 5] = (a | b << (24 - _loc_5 % 32));
    229.                 _loc_5 = _loc_5 + 8;
    230.             }
    231.             _loc_2[_loc_3 >> 5] = _loc_2[_loc_3 >> 5] | 128 << 24 - _loc_3 % 32;
    232.             _loc_2[(_loc_3 + 64 >> 9 << 4) + 15] = _loc_3;
    233.             return _loc_2;
    234.         }// end function
    235.   
    236.   
    237.   
    238. function f(param1:Number, param2:Number, param3:Number, param4:Number) : Number
    239.         {
    240.             if (param1 < 20)
    241.             {
    242.                 return param2 & param3 | ~param2 & param4;
    243.             }
    244.             if (param1 < 40)
    245.             {
    246.                 return param2 ^ param3 ^ param4;
    247.             }
    248.             if (param1 < 60)
    249.             {
    250.                 return param2 & param3 | param2 & param4 | param3 & param4;
    251.             }
    252.             return param2 ^ param3 ^ param4;
    253.         }// end function
    254.   function Uz(param1:Number) : Number
    255.         {
    256.             if (param1 < 20)
    257.             {
    258.                 return 1518500249;
    259.             }
    260.             if (param1 < 40)
    261.             {
    262.                 return 1859775393;
    263.             }
    264.             if (param1 < 60)
    265.             {
    266.                 return 2400959708;
    267.             }
    268.             return 3395469782;
    269.         }// end function
    270.   
    271.   
    272.   
    273.   var int1;
    274.   var int2;
    275.   var int3;
    276.   var int4;
    277.   var int5;
    278.   
    279. function encode2(param1:Array) : Array
    280.         {
    281.             var _loc_11:Number = 0;
    282.             var _loc_12:Number = 0;
    283.             var _loc_13:Number = 0;
    284.             var _loc_14:Number = 0;
    285.             var _loc_15:Number = 0;
    286.             var _loc_16:Number = 0;
    287.             var _loc_17:Number = 0;
    288.             var _loc_2:Number = 1732584193;
    289.             var _loc_3:Number = 4023233417;
    290.             var _loc_4:Number = 2562383102;
    291.             var _loc_5:Number = 271733878;
    292.             var _loc_6:Number = 3285377520;
    293.             var _loc_7:Number = param1.length;
    294.             var _loc_8:Array = new Array(80);
    295.             var _loc_9:Number = 0;
    296.             while (_loc_9 < _loc_7)
    297.             {
    298.                
    299.                 _loc_11 = _loc_2;
    300.                 _loc_12 = _loc_3;
    301.                 _loc_13 = _loc_4;
    302.                 _loc_14 = _loc_5;
    303.                 _loc_15 = _loc_6;
    304.                 _loc_16 = 0;
    305.                 while (_loc_16 < 80)
    306.                 {
    307.                     
    308.                     if (_loc_16 < 16)
    309.                     {
    310.                         _loc_8[_loc_16] = param1[_loc_9 + _loc_16];
    311.       //trace(_loc_2+"<>"+_loc_17);
    312.                     }
    313.                     else
    314.                     {
    315.       var bb = _loc_8[_loc_16 - 3] ^ _loc_8[_loc_16 - 8] ^ _loc_8[_loc_16 - 14] ^ _loc_8[_loc_16 - 16];
    316.       
    317.                         _loc_8[_loc_16] = mv(bb, 1);
    318.       
    319.       
    320.                     }
    321.      
    322.      var cc = f(_loc_16, _loc_12, _loc_13, _loc_14) ;
    323.      var dd = Uz(_loc_16);
    324.      //trace("cc["+cc+"]dd["+dd+"]");
    325.                     _loc_17 = mv(_loc_11, 5) + cc + _loc_15 + int(_loc_8[_loc_16]) + dd;
    326.      //trace("_loc_17="+_loc_17);
    327.                     _loc_15 = _loc_14;
    328.                     _loc_14 = _loc_13;
    329.                     _loc_13 = mv(_loc_12, 30);
    330.      trace(_loc_16+","+_loc_12+","+_loc_13+","+_loc_14+",_loc_12="+_loc_12);
    331.                     _loc_12 = _loc_11;
    332.                     _loc_11 = _loc_17;
    333.      
    334.                     _loc_16++;
    335.                 }
    336.    
    337.                 _loc_2 = _loc_2 + _loc_11;
    338.                 _loc_3 = _loc_3 + _loc_12;
    339.                 _loc_4 = _loc_4 + _loc_13;
    340.                 _loc_5 = _loc_5 + _loc_14;
    341.                 _loc_6 = _loc_6 + _loc_15;
    342.                 _loc_9 = _loc_9 + 16;
    343.     //trace("_loc_9=="+_loc_9+",_loc_7="+_loc_7);
    344.             }
    345.             var _loc_10:Array = new Array();
    346.             //new Array().writeInt(_loc_2);
    347.             _loc_10.push(_loc_3);
    348.             _loc_10.push(_loc_4);
    349.             _loc_10.push(_loc_5);
    350.             _loc_10.push(_loc_6);
    351.             //_loc_10.position = 0;
    352.             //_-TP = new ByteArray();
    353.             //_-TP.writeBytes(_loc_10);
    354.             //_-TP.position = 0;
    355.    int1 = _loc_2;
    356.    int2 = _loc_3;
    357.    int3 = _loc_4;
    358.    int4 = _loc_5;
    359.    int5 = _loc_6;
    360.    
    361.    trace(_loc_2+","+_loc_3+","+","+_loc_4+","+_loc_5+","+_loc_6);
    362.             return _loc_10;
    363.         }// end function
    364.   
    365.   
    366.   
    367.   
    368.   
    369.   
    370. function getPastureKey(param1:Number):String{
    371.     var _loc_6:Number = 0;
    372.             var _loc_2:String = "97b2d!@0b8f1@&%#$xsf";
    373.             var _loc_3:String = _loc_2.substr(param1 % 10, 100);
    374.             var _loc_4:Array = encode(param1 + _loc_3);
    375.             var _loc_5:Array = encode2(_loc_4);
    376.    trace(int1+"===");
    377.    trace(int2+"===");
    378.    trace(int3+"===");
    379.    trace(int4+"===");   
    380.    trace(int5+"===");   
    381.    
    382.             return method1(int1, true) + method1(int2, true) + method1(int3, true) + method1(int4, true) + method1(int5, true);
    383. }
    384.   
    385.   
    386.   
    387.   
    388. function method1(param1:Number, param2:Boolean) : String
    389.         {
    390.             var _loc_4:Number = 0;
    391.             var _loc_5:Number = 0;
    392.             var _loc_3:String = "";
    393.             if (param2)
    394.             {
    395.                 _loc_4 = 0;
    396.                 while (_loc_4 < 4)
    397.                 {
    398.                     
    399.                     _loc_3 = _loc_3 + (by.charAt(param1 >> (3 - _loc_4) * 8 + 4 & 15) + by.charAt(param1 >> (3 - _loc_4) * 8 & 15));
    400.                     _loc_4++;
    401.                 }
    402.             }
    403.             else
    404.             {
    405.                 _loc_5 = 0;
    406.                 while (_loc_5 < 4)
    407.                 {
    408.                     
    409.                     _loc_3 = _loc_3 + (by.charAt(param1 >> _loc_5 * 8 + 4 & 15) +by.charAt(param1 >> _loc_5 * 8 & 15));
    410.                     _loc_5++;
    411.                 }
    412.             }
    413.             return _loc_3;
    414.         }// end function
    415.   
    416.   
    417. function  mv(param1:Number, param2:Number) : Number
    418. {
    419.     var aa = param1 << param2 | param1 >>> (32 - param2);
    420. //trace(param1+"========="+param2+"======aa============="+aa);
    421. return aa;
    422. }// end function

    复制代码
    as代码都找到了,然后把它翻译成c#或java,即可:
    c#代码结果:

    1. view plaincopy to clipboardprint?
    2. using System;   
    3. using System.Collections.Generic;   
    4. using System.Linq;   
    5. using System.Text;   
    6. using System.Collections;   
    7.   
    8.   
    9. namespace com.sourceware.util   
    10. {   
    11.     class PastureKey   
    12.     {   
    13.   
    14.   
    15.   
    16.   
    17.   
    18.   
    19.         public static string getPastureKey(int farmTime)   
    20.         {   
    21.             string _loc_2 = "97b2d!@0b8f1@&%#$xsf";   
    22.             string _loc_3 = _loc_2.Substring(farmTime % 10, _loc_2.Length - farmTime % 10);   
    23.             int[] _loc_4 = m1(farmTime + _loc_3);   
    24.             ArrayList all =  encode2(_loc_4, 16);   
    25.             return method1((Int64)all[0], true) + method1((Int64)all[1], true) + method1((Int64)all[2], true) + method1((Int64)all[3], true) + method1((Int64)all[4], true);   
    26.         }   
    27.   
    28.   
    29.   
    30.         private static int[] m1(string param1)   
    31.         {   
    32.             int[] _loc_2 = new int[100];   
    33.             int _loc_3 = param1.Length * 8;   
    34.             int _loc_4 = 255;   
    35.             int _loc_5 = 0;   
    36.             while (_loc_5 < _loc_3)   
    37.             {   
    38.                 var a = _loc_2[_loc_5 >> 5];   
    39.                 var b = (char.Parse(param1.Substring(_loc_5 / 8, 1)) & _loc_4);   
    40.                 _loc_2[_loc_5 >> 5] = (a | b << (24 - _loc_5 % 32));   
    41.                 _loc_5 = _loc_5 + 8;   
    42.             }   
    43.             _loc_2[_loc_3 >> 5] = _loc_2[_loc_3 >> 5] | 128 << 24 - _loc_3 % 32;   
    44.             _loc_2[(_loc_3 + 64 >> 9 << 4) + 15] = _loc_3;   
    45.             return _loc_2;   
    46.         }// end function   
    47.   
    48.   
    49.   
    50.         private static System.Collections.ArrayList encode2(int[] param1, int len)   
    51.         {   
    52.             Int64 _loc_11 = 0;   
    53.             Int64 _loc_12 = 0;   
    54.             Int64 _loc_13 = 0;   
    55.             Int64 _loc_14 = 0;   
    56.             Int64 _loc_15 = 0;   
    57.             int _loc_16 = 0;   
    58.             Int64 _loc_17 = 0;   
    59.             Int64 _loc_2 = 1732584193;   
    60.             Int64 _loc_3 = 4023233417;   
    61.             Int64 _loc_4 = 2562383102;   
    62.             Int64 _loc_5 = 271733878;   
    63.             Int64 _loc_6 = 3285377520;   
    64.   
    65.             int _loc_7 = len;   
    66.             Int64[] _loc_8 = new Int64[80];   
    67.             int _loc_9 = 0;   
    68.             while (_loc_9 < _loc_7)   
    69.             {   
    70.   
    71.                 _loc_11 = _loc_2;   
    72.                 _loc_12 = _loc_3;   
    73.                 _loc_13 = _loc_4;   
    74.                 _loc_14 = _loc_5;   
    75.                 _loc_15 = _loc_6;   
    76.                 _loc_16 = 0;   
    77.                 while (_loc_16 < 80)   
    78.                 {   
    79.   
    80.                     if (_loc_16 < 16)   
    81.                     {   
    82.                         _loc_8[_loc_16] = param1[_loc_9 + _loc_16];   
    83.                         //System.Console.WriteLine(_loc_2 + "<>" + _loc_17);   
    84.                     }   
    85.                     else  
    86.                     {   
    87.                         Int64 bb = _loc_8[_loc_16 - 3] ^ _loc_8[_loc_16 - 8] ^ _loc_8[_loc_16 - 14] ^ _loc_8[_loc_16 - 16];   
    88.                         _loc_8[_loc_16] = mv(bb, 1);   
    89.                         System.Console.WriteLine("bb[" + bb + "]result[" + mv(bb, 1) + "]");   
    90.   
    91.                     }   
    92.   
    93.                     Int64 cc = f((Int64)_loc_16, (Int64)_loc_12, (Int64)_loc_13, (Int64)_loc_14);   
    94.                     //System.Console.WriteLine(_loc_16 + "," + _loc_12 + "," + _loc_13 + "," + _loc_14 + ",cc=" + cc);   
    95.   
    96.                     Int64 dd = Uz(_loc_16);   
    97.                     //System.Console.WriteLine("cc[" + cc + "]dd[" + dd + "]");   
    98.   
    99.   
    100.                     _loc_17 = mv(_loc_11, 5) + cc + _loc_15 + _loc_8[_loc_16] + dd;   
    101.   
    102.                     //System.Console.WriteLine("[" + mv(_loc_11, 5) + "][" + (int)cc + "][" + _loc_15 + "][" + _loc_8[_loc_16] + "][" + dd + "]");   
    103.   
    104.   
    105.                     _loc_15 = _loc_14;   
    106.                     _loc_14 = _loc_13;   
    107.                     _loc_13 = mv(_loc_12, 30);   
    108.                     //System.Console.WriteLine("13=" + _loc_13 + ",12=" + _loc_12);   
    109.   
    110.                     _loc_12 = _loc_11;   
    111.                     _loc_11 = _loc_17;   
    112.   
    113.                     _loc_16++;   
    114.                 }   
    115.   
    116.                 _loc_2 = (_loc_2 + _loc_11);   
    117.   
    118.                 _loc_3 = (_loc_3 + _loc_12);   
    119.                 _loc_4 = (_loc_4 + _loc_13);   
    120.                 _loc_5 = (_loc_5 + _loc_14);   
    121.                 _loc_6 = _loc_6 + _loc_15;   
    122.                 _loc_9 = _loc_9 + 16;   
    123.             }   
    124.             ArrayList _loc_10 = new ArrayList();   
    125.             _loc_10.Add(_loc_2);   
    126.             _loc_10.Add(_loc_3);   
    127.             _loc_10.Add(_loc_4);   
    128.             _loc_10.Add(_loc_5);   
    129.             _loc_10.Add(_loc_6);   
    130.   
    131.             return _loc_10;   
    132.         }// end function   
    133.   
    134.   
    135.   
    136.   
    137.         public static Int64 f(Int64 param1, Int64 param2, Int64 param3, Int64 param4)   
    138.         {   
    139.             int a = (int)param1;   
    140.             int b = (int)param2;   
    141.             int c = (int)param3;   
    142.             int d = (int)param4;   
    143.   
    144.   
    145.             if (a < 20)   
    146.             {   
    147.                 return b & c | ~b & d;   
    148.             }   
    149.             if (a < 40)   
    150.             {   
    151.                 return b ^ c ^ d;   
    152.             }   
    153.   
    154.             if (a < 60)   
    155.             {   
    156.                 return b & c | b & d | c & d;   
    157.             }   
    158.             return b ^ c ^ d;   
    159.         }// end function   
    160.   
    161.         private static Int64 Uz(Int64 param1)   
    162.         {   
    163.             if (param1 < 20)   
    164.             {   
    165.                 return 1518500249;   
    166.             }   
    167.             if (param1 < 40)   
    168.             {   
    169.                 return 1859775393;   
    170.             }   
    171.             if (param1 < 60)   
    172.             {   
    173.                 return 2400959708;   
    174.             }   
    175.             return 3395469782;   
    176.         }// end function   
    177.   
    178.   
    179.         public static Int64 mv(Int64 param1, int param2)   
    180.         {   
    181.             int aa = (int)param1 << (int)param2;   
    182.             uint bb = (uint)((uint)param1 >> (32 - param2));   
    183.   
    184.             Int64 cc = (Int64)(aa | bb);   
    185.             return cc;   
    186.         }// end function   
    187.   
    188.   
    189.         private static string method1(Int64 param1, bool param2)   
    190.         {   
    191.             string by = "0123456789abcdef";   
    192.             int _loc_4 = 0;   
    193.             int _loc_5 = 0;   
    194.             string _loc_3 = "";   
    195.             if (param2)   
    196.             {   
    197.                 _loc_4 = 0;   
    198.                 while (_loc_4 < 4)   
    199.                 {   
    200.   
    201.                     _loc_3 = _loc_3 + (by.Substring((int)(param1 >> (3 - _loc_4) * 8 + 4 & 15), 1) + by.Substring((int)(param1 >> (3 - _loc_4) * 8 & 15), 1));   
    202.                     _loc_4++;   
    203.                 }   
    204.             }   
    205.             else  
    206.             {   
    207.                 _loc_5 = 0;   
    208.                 while (_loc_5 < 4)   
    209.                 {   
    210.   
    211.                     _loc_3 = _loc_3 + (by.Substring((int)(param1 >> _loc_5 * 8 + 4 & 15), 1) + by.Substring((int)(param1 >> _loc_5 * 8 & 15), 1));   
    212.                     _loc_5++;   
    213.                 }   
    214.             }   
    215.             return _loc_3;   
    216.         }// end function   
    217.   
    218.   
    219.   
    220.     }//end class   
    221. }  
    复制代码

    该用户从未签到

    wangfan778899 发表于 2010-5-9 18:25:02 | 显示全部楼层
    ddddddddddddddddddd

    该用户从未签到

    501310440 发表于 2010-5-31 22:51:14 | 显示全部楼层
    学习中,呵呵

    该用户从未签到

    bluefrankey 发表于 2010-6-2 00:57:57 | 显示全部楼层

    這麼長的算法啊

    该用户从未签到

    chinaxhb 发表于 2010-6-22 09:32:45 | 显示全部楼层
    学习,自己也来做做。

    该用户从未签到

    avxs 发表于 2010-10-28 19:50:47 | 显示全部楼层
    太复杂的算法,,,头晕。

    该用户从未签到

    coody 发表于 2010-11-9 12:11:31 | 显示全部楼层
    我回来了我要回复一下

    该用户从未签到

    likess 发表于 2010-11-19 13:42:52 | 显示全部楼层
    学习下。。谢谢

    该用户从未签到

    954624 发表于 2010-12-12 20:13:10 | 显示全部楼层
    很想看  。。。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-8 13:56 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表