美文网首页
2019-08-05

2019-08-05

作者: 西溪里 | 来源:发表于2019-08-05 12:05 被阅读0次

    逆向 20190729

    #include<stdio.h>
    //int sub_1238(unsigned __int8 *a1, int a2);
    
    int sub_1238(int a1,int a3,int a2);
    
    int main(){
        int a3,b3,c3,d3,e3,f3,g3,h3;  //第3位
        int a,b,c,d,e,f,g;  //求第4位
        int a5,b5,c5,d5,e5,f5,g5,j5;   //第5位     unsigned char
        int a6,b6,c6,d6,e6,f6,g6,i6,j6,h6; //第6位
        int  e7,f7,g7,j7,     a7,b7,c7;
    /*======================求第3位============================*/
        a3 = 0;
        b3 = 63689;
        a3 = 35 + a3 * b3;
        b3 = b3 * 378551;
    
        for(d3=0;d3<200;d3++){
            e3 = a3;
            e3 = d3 + e3 * b3;
            if(((e3 + (e3 >> 31)) ^ (e3 >> 31)) == 2020122470){
                printf("第三位 d3= %d\n",d3);
                break;
            }
        }
    
    
    /*=====================求第4位=============================*/
         a = 1315423911;
        b = 121;
        c = a^((unsigned int)a >> 2) + 32 * a + b;
    //  printf("第四位 循环1:%d\n", c );
        d=c^((unsigned int)c >> 2) + 32 * c ;
        g= d +( d >> 31) ^ (d >> 31);
    //  printf("d=%d\n",d);
    //  printf("g=%d\n",g);    // g = 1522.......
    
     
        for(e=0;e<200;e++){
            f=c;
            f^= ((unsigned int)f >> 2) + 32 * f +e;
        //  printf("%d\n",((f+ (f>> 31)) ^ (f >> 31)));
            if( 1532463978 == ((f+ (f>> 31)) ^ (f >> 31))){
                printf("第四位ee   %d\n",e);
                break;
            }
             else if(e==199)
                 printf("没找到");
        } 
    
    /*=====================求第5位====================*/
    
    a5= 42; // V30[0]
    b5= 0; // v14
    c5 = 42 + 16 * 0; // c5 v17第一轮
    d5 = c5 &  0xF0000000 ? ((c5 & 0xF0000000) >> 24) ^ c5 & 0xFFFFFFF : c5; //d5:v14
    
    for(  j5=0;j5<200;j5++){
      f5 = c5;
      f5 = j5 +16 * d5;
      g5 = f5 & 0xF0000000 ? ((f5 & 0xF0000000) >> 24) ^ f5 & 0xFFFFFFF : f5;
      if(((g5 + (g5 >> 31)) ^ (g5 >> 31)) == 728)
          printf("第5位 j5 = %d\n",j5);
    }
    
    /*===================求第6位=======================*/
    //  int a6,b6,c6,d6,e6,f6,g6,j6,h6,i6,j6;
     
    a6 = 56;
    b6 = 56 + 0;  //第一轮 v20
    c6 = 56 + 0;   //第一轮 v21
    if (b6 & 0xF0000000){
        c6 = ((b6 & 0xF0000000) >> 24) ^ b6;
    }
    d6 = ((b6 | 0xFFFFFFF) ^ 0xF0000000) & c6;
    
    for(f6=0;f6<200;f6++){   //v15 :f6
        g6 = 16 * c6;        //v18 : g6
        h6 = f6 + g6; // v20
        i6 = f6 + g6;//  v21
        if( h6 & 0xF0000000 ){
            i6 = ((h6 & 0xF0000000) >> 24) ^ h6;
        }
       j6 = ((h6 | 0xFFFFFFF) ^ 0xF0000000) & i6;
    
       if( ((j6 + (j6 >> 31)) ^ (j6 >> 31)) == 960)
           printf("第6位 f6= %d\n",f6);
    }
    
    /*=====================第7位=============*/
    //  int  e7,f7,g7,j7,     a7,b7,c7;
    printf("===========================================\n");
    for (e7 = 0; e7 <200; e7 ++){
        f7 = sub_1238(64,e7,2);
     // printf("f7= %d\n",f7);
        g7=  (f7 + (f7 >> 31)) ^ (f7 >> 31);
        if ( g7 == 789320428 ){
            printf("第7位 e7 = %d\n",e7);
        }
    }
    
    
    }
    
    //int sub_1238(unsigned __int8 *a1, int a2)
    int sub_1238(int  a1 ,int a3,int a2)
    {
      int v2; // r7
      int v3; // r3
      int v4; // r4
      int v5; // r2
      unsigned int v6; // r6
    
      v2 = 0;
      v3 = 0;
      v4 = 0;
      v5 = 0;
    //  while ( a2 )
    //  {
        v6 = a1;
        v4 += (v6 >> 2) * v4 * v6 + 804604770;
        v2 += 32 * v6 * v2 * v6 + 1491913760;
        v3 = v3 + 8 * v6 * v3 * v6 - 1774596542;
        v5 = v5 + 2 * v6 * v5 * v6 - 1263339326;
        //--a2;
        v6 = a3;
        v4 += (v6 >> 2) * v4 * v6 + 804604770;
        v2 += 32 * v6 * v2 * v6 + 1491913760;
        v3 = v3 + 8 * v6 * v3 * v6 - 1774596542;
        v5 = v5 + 2 * v6 * v5 * v6 - 1263339326;
       //  a3;
     // }
      //printf("%d",v4+v5+v3+v2);
      return v4 + v5 + v3 + v2;
    }
    
    

    相关文章

      网友评论

          本文标题:2019-08-05

          本文链接:https://www.haomeiwen.com/subject/mdopdctx.html