2019-08-05

逆向 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;
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 上周计划及执行情况。 学习超过40个小时(平均一天6个小时),把心得更新到简书。。。。。。√×,32小时 跑步回学...
    yousa_阅读 1,189评论 0 0
  • 公司给我职业规划,给我画张饼,看看我能不能消化。
    琥珀_8dcb阅读 1,036评论 0 0
  • 读书感悟107: 分享奥普拉 温弗瑞(媒体人和商人)的一段话:“我会对一些哪怕琐碎的事表达我的谢意,感谢的心情越强...
    愿2020阅读 708评论 0 0
  • 小小鱼_ba47阅读 1,292评论 0 0
  • 与众多的宝妈们一起,开启我们的辣妈时代。 二宝10个月了,我也回职场上班4个月,每次遇到同事,都问我休了个产假结束...
    海群的碎碎念阅读 3,359评论 7 8

友情链接更多精彩内容