首页 > 其他分享 >PVS-Studio分析

PVS-Studio分析

时间:2023-04-12 20:55:15浏览次数:49  
标签:分析 PVS 48 ss mov rbp qword Studio ptr

PVS-Studio是一个静态代码扫描工具,还不错。

先通过dnspy调试主进程可以发现检查授权文件的的进程是一个子进程,如:

PVS-Studio.exe --checkreg=yes --lic-file="D:\pvs.lic"

因此要解决授权问题,核心应该是调试PVS-Studio.exe这个进程。通过命令行分析我们可以知道该进程肯定是要读取授权文件才能查询授权状态,因此Windows API的kernal32.CreateFile、kernal32.WriteFile都可以作为关键点来作为突破口。

在x64dbg中调试PVS-Studio.exe,在kernal32.WriteFile处下断点,可以找到类似下面的代码:

000000014001E4C0 | 55                                    | push rbp                                         |
000000014001E4C1 | 41:57                                 | push r15                                         |
000000014001E4C3 | 41:56                                 | push r14                                         |
000000014001E4C5 | 41:55                                 | push r13                                         |
000000014001E4C7 | 41:54                                 | push r12                                         |
000000014001E4C9 | 56                                    | push rsi                                         |
000000014001E4CA | 57                                    | push rdi                                         |
000000014001E4CB | 53                                    | push rbx                                         |
000000014001E4CC | 48:81EC E8000000                      | sub rsp,E8                                       |
000000014001E4D3 | 48:8DAC24 80000000                    | lea rbp,qword ptr ss:[rsp+80]                    |
000000014001E4DB | 48:C745 60 FEFFFFFF                   | mov qword ptr ss:[rbp+60],FFFFFFFFFFFFFFFE       |
000000014001E4E3 | 88CB                                  | mov bl,cl                                        |
000000014001E4E5 | 0F57C0                                | xorps xmm0,xmm0                                  |
000000014001E4E8 | 0F2945 C0                             | movaps xmmword ptr ss:[rbp-40],xmm0              |
000000014001E4EC | 48:C745 D0 00000000                   | mov qword ptr ss:[rbp-30],0                      |
000000014001E4F4 | 48:C745 D8 07000000                   | mov qword ptr ss:[rbp-28],7                      |
000000014001E4FC | 48:C745 48 00000000                   | mov qword ptr ss:[rbp+48],0                      |
000000014001E504 | C645 5F 00                            | mov byte ptr ss:[rbp+5F],0                       |
000000014001E508 | 48:8D4D C0                            | lea rcx,qword ptr ss:[rbp-40]                    |
000000014001E50C | 48:8D55 48                            | lea rdx,qword ptr ss:[rbp+48]                    | var_expire_time
000000014001E510 | 4C:8D45 5F                            | lea r8,qword ptr ss:[rbp+5F]                     | var_license_type
000000014001E514 | E8 B7DAFFFF                           | call <pvs-studio.get_license_details>            | get_license_details
000000014001E519 | 84DB                                  | test bl,bl                                       |
000000014001E51B | 74 3C                                 | je pvs-studio.14001E559                          |
000000014001E51D | 85C0                                  | test eax,eax                                     |

     上面的pvs-studio.get_license_details就是我们想找的那个函数,一共有三个地方引用这个函数。所以我们将get_license_details这个函数改成下面这样:

000000014001BFD0 | 3641:C700 03000000                    | mov dword ptr ss:[r8],3                          | set license type: 3, enterprise
000000014001BFD8 | 36:C702 809277E8                      | mov dword ptr ss:[rdx],E8779280                  | set expire time, 2093/8/3....
000000014001BFDF | 90                                    | nop                                              |
000000014001BFE0 | B8 03000000                           | mov eax,3                                        | set return value: 3, valid license 
000000014001BFE5 | C3                                    | ret                                              |

     这将会无视授权文件,直接返回授权类型并设置一个巨大无比的试用期限,然后直接返回3。这样你的目的就达到了。

 

 

安装包下载地址:

链接: https://pan.baidu.com/s/10j9cnmqT8FUwBbuKxjNXyw?pwd=ab7i 提取码: ab7i 

 

标签:分析,PVS,48,ss,mov,rbp,qword,Studio,ptr
From: https://www.cnblogs.com/bodong/p/17311214.html

相关文章

  • JavaWeb之Servlet详解(以及浏览器调用 Servlet 流程分析图)
    Servlet1.什么是ServletServlet(java服务器小程序)他是由服务器端调用和执行的(一句话:是Tomcat解析和执行)他是用java语言编写的,本质就是Java类他是按照Servlet规范开发的(除了tomcat->Servletweblogic->Servlet)功能强大,可以完成几乎所有的网站功能2.开发......
  • dpt-shell 抽取壳实现原理分析(执行逻辑)
    开源项目位置(为大佬开源精神点赞)https://github.com/luoyesiqiu/dpt-shell抽取壳分为两个步骤加壳逻辑:一对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充二对抽取后的apk进行加密三注入壳程序相关文件即配置信息执行逻辑:一壳程序执行二壳解密......
  • dpt-shell 抽取壳实现原理分析(加壳逻辑)
    开源项目位置(为大佬开源精神点赞)https://github.com/luoyesiqiu/dpt-shell抽取壳分为两个步骤加壳逻辑:一对apk进行解析,将codeItem抽出到一个文件中,并进行nop填充二对抽取后的apk进行加密三注入壳程序相关文件即配置信息执行逻辑:一壳程序执行二壳解密......
  • 记一次排程未重定向导致var目录不足的分析与处理
    1.现象有多台服务器,只有其中一台var目录增长很快,肯定有问题2.排查cd/var#执行下面的命令迟迟得不到结果du-sh*|grepG#没办法,只能一个目录一个目录的看大小cd/varlsdu-shftpdu-shlog#在计算spool目录大小的时候,发现卡住了,可以断定是spool目录比较大du-sh......
  • FART 脱壳机原理分析
    FART是一个基于Android源码修改的脱壳机可以脱整体壳和抽取壳FART脱壳的步骤主要分为三步:1.内存中DexFile结构体完整dex的dump2.主动调用类中的每一个方法,并实现对应CodeItem的dump3.通过主动调用dump下来的方法的CodeItem进行dex中被抽取的方法的修复1.整体壳脱壳分析......
  • 加密木马分析
    前言记一次恶意代码分析教程:《恶意代码分析实战》第九章实验Lab9-1恶意代码样本:https://github.com/mikesiko/PracticalMalwareAnalysis-Labs 实验环境(虚拟环境)WindowsXP:Ollydbg1.1Windows10:IDApro7.7 定位调用main函数地址 IDA函数窗口找到_main,进入函......
  • Visual Studio C盘数据迁移,解决C盘空间不足的问题
     迁移原理:将VisualStudio比较占用磁盘空间的“C:\ProgramFiles(x86)\MicrosoftSDKs\”目录和“C:\ProgramFiles(x86)\WindowsKits\”目录移动到D盘,然后通过mklink命令建立C盘和D盘的软连接然后在cmd下执行下面命令即可(如果提示C盘找不到目录,自己手动新建一个即可)......
  • 假设检验之 :单因素方差分析
    秩和检验:用于比较两组独立样本的中位数是否有明显差异。它不需要对数据的分布进行任何假设,适用于任何两组样本大小相等或不等、符合连续性变量的情况。在进行Mann-WhitneyU检验时,需要根据研究问题确定备择假设类型来选择使用双侧检验还是单侧检验。如果没有明确的预测或假......
  • 【JAVA】四则运算计算题生成及完成情况分析程序
    第七周结对编程任务为给出一个300道四则运算计算题并能够完成和检查答案是否正确,我(2152113)邀请到了我计科专业的舍友(2152123)与我一同组队,编程语言选择了我们都较为熟悉的JAVA。代码初现先由我来进行了计算题生产器的代码编写代码如下importjava.util.Random;publicclass......
  • Youpk 脱壳机脱壳原理分析
    Youpk是一个针对整体加固和Dex抽取加固壳的脱壳机主要是基于虚拟机的,也就是基于VA的脱壳机,相对FART出来的更晚一些,厂商针对少一些,脱壳位置相对更底层一些,还提供了Dex修复的工具,简直棒棒1.先分析整体脱壳的原理在ActivityThread的handleBindApplication中增加了代......