美文网首页
ollvm-流程

ollvm-流程

作者: 珍惜Any | 来源:发表于2019-12-27 20:08 被阅读0次

    原始代码:

    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)

    相关文章

      网友评论

          本文标题:ollvm-流程

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