JAVA算法;逆向。算法

问题描述

publicclassVer{privateint_$9=0;privateint_$8=0;privateString_$7=null;privateString_$6=null;privateint_$5=0;privateint_$4=0;privatelong_$3=0L;privateint_$2=0;privateint_$1=0;publicvoidload(FileparamFile)throwsFileNotFoundException{_$1(paramFile);}privatevoid_$1(FileparamFile)throwsFileNotFoundException{if((paramFile==null)||(!paramFile.exists())){thrownewFileNotFoundException("Can'tfindthefile.");}try{FilelocalFile=paramFile;byte[]localObject1=newbyte[(int)localFile.length()];//取得文件[9,-31,9,49,-3,12,-113,7,101,20,25,42,59,117,-48,-117,25,-59,106,36,-42,-76,56,-78,59,113,114,-105,-98,85,-77,82,-16,78,86,-86,30,28,-2,39,83,-21,0,32,86,-71,-124,-114,122,64,-95,-79,-89,-17,-71,-35,-95,-10,34,103,56,95,17,-70,89,-1,-107,-22,61,-86,77,-31,-73,112,9,44,-49,-125,53,-9,76,61,115,-94,90,-21,65,-59,122,-76,-36,-91,88,-1,51,-90,-90,-118,99,-128,17,-109,-49,-41,-28,111,98,-19,-127,86,-37,-87,76,88,45,-93,5,95,-38,-111,16,-49,30,-72,-54,3,105,101,55,19,11,-29,-115,-41,-19,-69,111,-27,-64,96,-43,71,-1,82,106,-116,-45,51,87,17,-12,118,-111,125,-108,-112,56,-36,-117,113,120,-115,127,1,106,-49,9,48,-12,38,81,20,-69,44,37,81,104,30,-89,-71,69,63,-121,-12,17,108,-52,37,57,125,-117,-84,-121,19,-43,73,-100,99,-5,-17,100,-84,-121,-69,-3,19,-69,-101,-25,-127,-84,124,21,113,27,48,-76,76,13,-19,-127,-103,-1,17,-85,46,-76,114,30,40,-78,-62,86,59,-34,-89,110,-58,-58,14,-71,21,-80,-33,98,4,-50,121,-83,-21,-121,50,-89,-51,89,117,12,119,-87,88,-84,19,-65,51,-40,-61,-29,-51,-35,-82,54,51,-39,126,82,-70,62,-128,109,-121,-38,116,115,71,115,74,-74,-96,-95,-48,-1,-92,28,36,-50,-47,20,-115,116,-20,80,75,74,27,14,97,99,102,86,-51,-55,-38,127,-20,10,52,-5,126,6,0]ObjectlocalObject2=newFileInputStream(localFile);((FileInputStream)localObject2).read((byte[])localObject1);//读取文件((FileInputStream)localObject2).close();byte[]localObject3={0,65,0,3,0,-113,-115,-38,-106,-26,-14,-81,3,-112,-94,-22,89,37,77,-6,39,-29,67,-82,-44,-103,47,21,38,71,-89,72,2,89,-49,-19,1,110,74,68,-117,-28,123,107,107,92,105,-5,59,-23,11,-107,-27,36,-85,-22,101,82,-40,-108,15,-103,61,-39,52,28,57,-28,101,1,0,1};inti=(localObject3[0]&0xFF)<<8|localObject3[1]&0xFF;//i=65intj=(localObject3[2]&0xFF)<<8|localObject3[3]&0xFF;//j=3byte[]arrayOfByte2=newbyte[i];//开出65个字节[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]byte[]arrayOfByte3=newbyte[j];//创建三字节[0,0,0]System.arraycopy(localObject3,4,arrayOfByte2,0,i);System.arraycopy(localObject3,4+i,arrayOfByte3,0,j);ObjectlocalObject4=newBigInteger(1,arrayOfByte2);//7518539155220091912091271151607171597180694736625285327722048871200906719085585230683358494079624676176505503892717301692809619039513418622614148430292069ObjectlocalObject5=newBigInteger(1,arrayOfByte3);//65537intm=(((BigInteger)localObject4).bitLength()+7)/8;//m=64intn=m;//n=64inti1=m-1;//i1=63inti2=(localObject1.length+n-1)/n*i1;//315byte[]arrayOfByte1=newbyte[i2];//315inti3=0;for(inti4=0;i3<localObject1.length;i4+=i1){byte[]arrayOfByte4=newbyte[n];inti5=localObject1.length-i3;if(i5>n)System.arraycopy(localObject1,i3,arrayOfByte4,0,n);elseSystem.arraycopy(localObject1,i3,arrayOfByte4,0,i5);BigIntegerlocalBigInteger1=newBigInteger(1,arrayOfByte4);//517407651520686600069155755378994573441292672595621585940102495302888392538492833013031513124330161658548374683634860721799927620216002436239992782000570BigIntegerlocalBigInteger2=localBigInteger1.modPow((BigInteger)localObject5,(BigInteger)localObject4);//9976971778203722047684271002989477961883238883022141389684090131454479278822236304571083126853114419726057531570923733312166778452205013214592459886091arrayOfByte4=localBigInteger2.toByteArray();//[48,-60,52,63,1,-44,-69,-93,0,-96,-98,-92,123,83,-12,108,110,-2,0,108,-20,30,-111,-45,112,-38,-1,-118,-13,-66,-49,17,-27,116,-124,-79,93,30,83,-67,0,94,100,8,112,47,0,-34,127,-87,1,-18,100,-4,29,-103,-118,72,77,-23,0,78,11]if(arrayOfByte4.length<=i1)System.arraycopy(arrayOfByte4,0,arrayOfByte1,i4+i1-arrayOfByte4.length,arrayOfByte4.length);elseSystem.arraycopy(arrayOfByte4,arrayOfByte4.length-i1,arrayOfByte1,i4,i1);i3+=n;}i=arrayOfByte1[0]&0xFF;//取得j=65j=arrayOfByte1[1]&0xFF;//取得J=3arrayOfByte2=newbyte[i];for(intk=0;k<i;k++){//循环计算arrayOfByte2[k]=arrayOfByte1[j];j=arrayOfByte1[(j+1)]&0xFF;}ByteArrayInputStreamlocalByteArrayInputStream=newByteArrayInputStream(arrayOfByte2);localObject4=newDataInputStream(localByteArrayInputStream);//获取解密:this._$8=((DataInputStream)localObject4).readShort();//CPUthis._$7=((DataInputStream)localObject4).readUTF();//用户this._$6=((DataInputStream)localObject4).readUTF();//版本if(this._$8>=3){this._$5=((DataInputStream)localObject4).readInt();//0this._$4=((DataInputStream)localObject4).readInt();//10this._$3=((DataInputStream)localObject4).readLong();//1387728000000this._$2=((DataInputStream)localObject4).readInt();//365this._$1=((DataInputStream)localObject4).readInt();//-1}else{localObject5=((DataInputStream)localObject4).readUTF();if(((String)localObject5).endsWith("CPU"))this._$5=Integer.parseInt(((String)localObject5).substring(0,((String)localObject5).length()-3));elsethis._$5=Integer.parseInt((String)localObject5);this._$3=((DataInputStream)localObject4).readLong();this._$1=((DataInputStream)localObject4).readInt();if(this._$1==-1){this._$4=5;this._$2=15;}else{this._$4=0;this._$2=0;}}this._$9=this._$1;//IPif((this._$8==2)||(this._$8==3)){StringlocalObject13=(this._$1>>>24&0xFF)+"."+(this._$1>>>16&0xFF)+"."+(this._$1>>>8&0xFF)+"."+(this._$1>>>0&0xFF);//255.255.255.255localObject2=InetAddress.getByName(localObject13);//255.255.255.255ServerSocketlocalObject31=newServerSocket(0,1,(InetAddress)localObject2);((ServerSocket)localObject31).close();this._$9=0;}}catch(ThrowablelocalThrowable){if(this._$1==-1){//365转成MILLISlongl=System.currentTimeMillis()-this._$3;if((l>=0L)&&(l<this._$2*86400L*1000L))this._$9=0;elseif((this._$4>0)&&(this._$4<6)){this._$9=0;}elsethis._$9=2130706434;}}}

解决方案

解决方案二:
楼主是想干嘛呢
解决方案三:
想知这个是什么算法。应该是个组盒算法。RAS大码还有SHA1或MD5
解决方案四:

解决方案五:
没人懂么?请问:this.getMd5(password).ToUpper().Substring(3,0x10)==Id.Substring(0,0x10));什么意思呀?

时间: 2024-12-26 03:57:21

JAVA算法;逆向。算法的相关文章

java-JAVA 算法逆向。。是哪种算法 逆向。。怎么操作

问题描述 JAVA 算法逆向..是哪种算法 逆向..怎么操作 byte[] arrayOfByte4 = { 0, 65, 0, 3, 0, -113, -115, -38, -106, -26, -14, -81, 3, -112, -94, -22, 89, 37, 77, -6, 39, -29, 67, -82, -44, -103, 47, 21, 38, 71, -89, 72, 2, 89, -49, -19, 1, 110, 74, 68, -117, -28, 123, 107

Java实现快速排序算法(Quicktsort)

 这篇文章主要介绍了Java实现快速排序算法(Quicktsort),有需要的朋友可以参考一下 快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作.基准元素的选取对算法的效率影响很大,最好的情况是两个子数

使用java实现LIS算法,出操队形的问题_java

假设有序列:2,1,3,5,求一个最长上升子序列就是2,3,5或者1,3,5,长度都为3. LIS算法的思想是: 设存在序列a. ① 如果只有一个元素,那么最长上升子序列的长度为1: ② 如果有两个元素,那么如果a[1]>a[0],则最长上升子序列的长度为2,a[1]为该最长上升子序列的最后一个元素;若a[1]<a[0],则最长上升子序列的长度为1,a[0]和a[1]均为  其最长上升子序列的最后一个元素. ③ 如果由三个元素,那么如果a[2]>a[0],a[2]>a[1],则a[

java算法-java求教,算法竞赛入门经典 3.4 最长回文子串

问题描述 java求教,算法竞赛入门经典 3.4 最长回文子串 java新手求教,关键是怎么保存s[i]在buf中的位置,谢谢 解决方案 string longestPalindromeDP(string s) { int n = s.length(); int longestBegin = 0; int maxLen = 1; bool table[1000][1000] = {false}; for (int i = 0; i < n; i++) { table[i][i] = true;

算法 数据结构 java-以下java的最短路径算法应该如何实现

问题描述 以下java的最短路径算法应该如何实现 不知道怎么用额. 解决方案 http://blog.csdn.net/javaman_chen/article/details/8254309 解决方案二: http://download.csdn.net/detail/gareth_liao/5100648 解决方案三: 谢谢回复 解决方案四: 最短路径算法(java实现)

java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示。

问题描述 java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 用java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 解决方案 数组可以表示很多数的-你说,用一个数表示啥意思?? 解决方案二: 你应该是想要下面的实现.如果有用请采纳. import java.util.ArrayList; import java.util.List; public class TestMain { public static void main(String

java数据结构和算法 22只鞋子,拿多少次可以拿一双

问题描述 java数据结构和算法 22只鞋子,拿多少次可以拿一双 22只鞋子 5双运动鞋,4双凉鞋,2双礼服鞋放在看不到的盒子里, 一次拿一只 最少拿多少次可以拿一双鞋子(左右脚也要对应) 解决方案 假设已经拿了5只左脚的运动鞋,4只凉鞋,2只礼服鞋,那么再拿一只,一定可以组成一双鞋,所以是12次 解决方案二: 应该是12次,不信的话你在问其他人. 解决方案三: 最少几次?2最多几次?12.....

java实现归并排序算法_java

归并排序就是将未排序的数组进行对半划分成两个数组,划分后的数组只有原来数组的一半数量的元素.然后在对划分的两个数组再继续划分,循环此操作,直到划分的数组中只有一个元素时停止划分,然后对于划分完成的数组进行归并排序操作.将两个已经划分完成的数组合并成一个有序的数组,直到最后合并成一个包含所有元素的数组,合并排序操作完成.下面以图形来演示下归并排序的过程. 假设有一个未排序数组:{3,2,4,1},下面为数组的划分过程,先将数组对半划分为{3,2}和{4,1}两个数组.然后在对这两个数组进行划分最后

Java常用排序算法及性能测试集合_java

现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧.本文适合做java面试准备的材料阅读. 先附上一个测试报告: Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort : 252 msinsertSort : 218 msinsertSortAdvanced : 127 msinsertSor

java实现sunday算法示例分享_java

字符串匹配查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore).两个算法在最坏情况下均具有线性的查找时间.但是在实用上,KMP算法并不比最简单的C库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍(未亲身实践).但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法Sunday算法. Sunday算法的思想和BM算法中的坏字符思想非常类似.差别只是在于Sunday算法在匹配失败之后,是取目标串中当前和