当前位置: 首页 > article >正文

奇安信勒索解密工具分析及调用

工具下载地址

奇安信解密工具下载网址:

勒索病毒搜索

分析过程

1.确认能解密哪些勒索

2.分析模块功能,确认解密操作都在QaxDecryptEng.dll中

3.分析界面调用dll方式,以LoadLibrary方式加载dll获取导出函数地址

有如上信息,直接分析导出函数参数即可调用QaxDecryptEng.dll解密文件

尝试wannacry,选定勒索:wannacry_84c82835a5d21bbcf75a61706d8ab549

无法解密

wannaren (可以解密)

22a49fd2468178e5b33cad08985adde50f0530a33260affc58bee6b2401005a9 wwlib.dll

6c3e77ace70a7fd80d0d2e224690bc1691d6587e489c3cb63e51eef91168dcb7 you

分析解密WannaRen共调用了两个导出函数

SetDecryptPath 1个参数,解密后文件的路径

ScanAndDecrypt 2个参数(好像是3个参数,有一个设置了默认值) 一个回调函数,用于返回给界面信息的,一个是加密文件的路径

第一个参数内存被调用,判断是回调函数

转到汇编调用中去看,使用了SendMessageW函数,猜测是给界面发消息,在dll中处理的状态返回给界面

实现回调函数,调用成功,解密文件成功

#include <stdio.h>
#include <windows.h>

typedef void(CALLBACK* cFun) (LPCTSTR encryptFilePath, DWORD status);
typedef void(*pFuncSetDecryptPath)(LPCTSTR decryptPath);
typedef DWORD(*pFuncScanAndDecrypt)(cFun callbackFun, LPCTSTR encryptFilePath);

void CALLBACK GetInfo(LPCTSTR encryptFilePath, DWORD status)
{
    printf("%d\n", status);
}


int main()
{
    HMODULE hmod = LoadLibraryW(L"E:\\work\\TEST\\QaxDecryptEng.dll");
    pFuncSetDecryptPath dPath = (pFuncSetDecryptPath)GetProcAddress(hmod, "SetDecryptPath");
    dPath(L"E:\\work\\TEST");
    pFuncScanAndDecrypt decryptfile = (pFuncScanAndDecrypt)GetProcAddress(hmod, "ScanAndDecrypt");
    decryptfile(GetInfo, L"E:\\work\\勒索解密\\去小盾牌.bat.WannaRen");
    return 0;
}

http://www.kler.cn/news/363488.html

相关文章:

  • Html/Vue浏览器下载并重命名文件
  • 字符串使用方法:
  • 青少年编程能力等级测评CPA C++(三级)-试卷2
  • 从零开始学python必看,最强“Python编程三剑客(pdf)”
  • 汽车免拆诊断案例 | 2019 款奥迪 A6L 车行驶中偶发熄火
  • 论当前的云计算
  • Java程序设计:spring boot(9)——应用热部署
  • Java|乐观锁和悲观锁在自旋的时候分别有什么表现?
  • 论文速读:面向单阶段跨域检测的域自适应YOLO(ACML2021)
  • 基于C#开发游戏辅助工具的Windows底层相关方法详解
  • ThreadLocal源码详解
  • 前言——25机械考研复试专业面试问题汇总 机械复试超全流程攻略 机械复试看这一个专栏就够用了!机械复试调剂英语自我介绍口语专业面试常见问题总结 机械保研面试
  • 实用的 Python 小脚本
  • 无线网络的几种认证与加密方式
  • 程序员职业生涯总结之设计自己的人生算法
  • 【github小问题】——push后报错error: src refspec master does not match any
  • 数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
  • 基于Springboot相亲网站系统的设计与实现
  • C#第三讲:面向对象、类、对象、类成员【定义】
  • React Native 持久化数据
  • 502 错误码通常出现在什么场景?
  • C/C++语言基础--C++四大类型转换讲解
  • goland/phpstrom快捷键
  • 太速科技-217-A(B)-Base Camera link 转光纤传输双向模块
  • 后端接口接受的是文件流,前端怎么把一张图片地址转换成文件流?
  • 华为ENSP基础实验