美文网首页
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-流程

    原始代码: int x=0 ; std::cin>>x; //上面这俩行是基本模块。 //条件模块 if(x%2=...

  • Tomcat 服务器启动时序图

    启动流程 Catalina 加载流程 Catalina 初始化流程 Catalina 启动流程 应用部署流程 原文...

  • Activiti5

    Activiti5 新增流程部署 查询所有部署的流程(流程部署) 删除部署的流程(流程部署) 查看所有的流程定义 ...

  • 登陆流程

    看了资料,注册登陆流程包括:注册流程、登录流程;逆向流程:找回密码流程,风控流程。 备注:正向流程是指正常情况下企...

  • 80页整套企业流程管理体系PPT:4级结构,48条管理流程

    【该流程体系含】: 一级流程:战略决策工作流程 二级流程:产品战略规划制定流程 二级流程:技术研究流程 二级流程:...

  • Activiti工作流框架——控制操作流程

    部署流程定义 启动流程实例 查询流程定义 查询最新版本的流程定义 查询流程实例状态 导出流程图到文件夹下 删除流程...

  • 流程,流程

    没有规律的生活,就是没有流程没有流程,就不会有可测量的成长和发展做任何事,要知道成功会怎样,plan b是怎样马不...

  • Activiti 流程

    Activiti 流程 流程引擎 流程启动,运行的具体环境。 创建流程引擎 创建流程引擎时,会在classpath...

  • 采购部的六大流程编制及说明

    采购部管理流程知识:采购计划流程、供应商管理流程、生产物料采购流程、外协物品采购流程、采购付款流程、采预付款流程的...

  • 什么是流程?

    《流程管理》这本书主要围绕流程理念、流程浮现、考核流程的方法、指导具体流程的业务原则、流程细化与优化、基于IT的岗...

网友评论

      本文标题:ollvm-流程

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