ollvm-流程

2019-12-27  本文已影响0人  珍惜Any

原始代码:

int x=0 ;

std::cin>>x;  //上面这俩行是基本模块。

//条件模块

if(x%2==0){

       std::cout<<"偶数"<<std:endl;

}else if(x==5){

       std::cout<<"5"<<std::endl;

}else{

        std::cout<<"不是5的奇数"<<std::endl;

}

return 0;

------------------------------------------------------------------------------------------------------------------

1,首先找出原 函数全部逻辑的 Block(  所有的条件分支  比如 可能出现的 跳转情况 );

2,创建 switch 排序到 里面,给每一个 Block 取一个ID ,将每个ID的 逻辑 进行连接,跳转等操作。

3,执行完毕以后 进行 ID的修改 跳转到 别的 Block

---------------------------------------------------------------------------------------------------------------------

ollvm混淆以后的代码 :

```C++

int x=0 ;

std::cin>>x;  //基本模块保持不变 。

int blockid =0x1 ; //生成blockID;

  while(true){

        switch( blockid ){

                  case 0x1:

                          if(x%2==0){

                                 blockid =0x2;

                            }else{

                                  blockid =0x4;

                           }

                          break;

               case 0x2:

                           std::cout<<"偶数"<<std:endl;

                          blockid =0x3;

                         break;

                 case 0x3:

                         return 0;

                         break;

                case 0x4:

                         if(x==5){

                               blockid =0x5;

                          }else{

                              blockid =0x6;

                         }

                          break;

                case 0x5:

                          std::cout<<"5"<<std::endl;

                          blockid =0x3;

                          break;

               case 0x6:

                         std::cout<<"不是5的奇数"<<std::endl;

                         blockid =0x3;

                         break;

               default:

                         break;

     }

}

```

-----------------------------------------------------------------------------------------------------------

如果对 逆向,脱壳,新技术 感兴趣的 同学 可以加 我Q群 欢迎各位能人志士 一起讨论

欢迎加入故事,群聊号码:773642813  也可以加入笔者的 小密圈,各种安卓新技术,源码分享等

![image.png](https://img.haomeiwen.com/i12722767/b5cc4ae2c4480d6c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

上一篇下一篇

猜你喜欢

热点阅读