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

SanDisk U盘加密软件 在其他u盘使用

RunSanDiskSecureAccess_Win.exe 这个软件是SanDisk U盘加密工具,它被设计为只在SanDisk U盘上运行,如果不是sandisk的,就弹窗不让用



于是我们Patch它,IDA打开 发现还是QT开发的,不管,搜索exit 函数调用,全部挂断点,然后运行,弹窗 在OK后exit命中,向上找到提示信息


   _InterlockedExchangeAdd(v465, 1u);
  if ( !TestSandiskDrv(v449) )
  {
    v449 = (void **)-1;
    v252 = (void *)sub_10B2480(&v459, "This application only runs on a SanDisk flash drive", 0, -1);
    LOBYTE(v469) = 91;
    v253 = sub_10B1000(" V3.0");
    LOBYTE(v469) = 92;
    v254 = sub_10B1000("SanDisk SecureAccess");
    LOWORD(v453) = 8482;
    LOBYTE(v469) = 93;
    v255 = sub_10B22D0(&v456, v254, v453);
    LOBYTE(v469) = 94;
    v256 = (void *)sub_10B2250(&a2, v255, v253);
    v453 = (int)&v448;
    LOBYTE(v469) = 95;
    sub_11D7F00((int)v2, v256, v252, 1024, 0);
    v257 = a2;
    v258 = *(_DWORD *)a2;
    LOBYTE(v469) = 94;
    if ( v258 )
    {
      if ( v258 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)a2, 0xFFFFFFFF) )
      {
LABEL_353:
        v259 = v456;
        v260 = *(_DWORD *)v456;
        LOBYTE(v469) = 93;
        if ( v260 )
        {
          if ( v260 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)v456, 0xFFFFFFFF) )
          {
LABEL_358:
            v261 = v457;
            v262 = *(_DWORD *)v457;
            LOBYTE(v469) = 92;
            if ( v262 )
            {
              if ( v262 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)v457, 0xFFFFFFFF) )
              {
LABEL_363:
                v263 = v458;
                v264 = *(_DWORD *)v458;
                LOBYTE(v469) = 91;
                if ( v264 )
                {
                  if ( v264 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)v458, 0xFFFFFFFF) )
                  {
LABEL_368:
                    v265 = v459;
                    v266 = *(_DWORD *)v459;
                    LOBYTE(v469) = 89;
                    if ( v266 )
                    {
                      if ( v266 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)v459, 0xFFFFFFFF) )
LABEL_373:
                        exit(0);



剩下的就是把TestSandiskDrv Patch掉,进去看看


 v42 = v6;
  if ( v7 || v5 == v44 )
  {
    v27 = v41;
    v28 = *((_DWORD *)v41 + 2);
    LOBYTE(v45) = 0;
    if ( !v28 || v28 != -1 && !_InterlockedExchangeAdd((volatile signed __int32 *)v41 + 2, 0xFFFFFFFF) )
      sub_18292E0(v27, (int)sub_116B1B0);
    v29 = sub_11443A0(&v40, 4, (int)"..\\shared\\encstickmanager.cpp", 199, (int)"ENCStickManager::isSandiskFlashDrive");
    LOBYTE(v45) = 5;
    v30 = sub_10B8430(&v39, "isSandiskFlashDrive failed for", -1);
    v31 = *v29;
    LOBYTE(v45) = 6;
    sub_17D54E0(v31, v30);
    v32 = v39;
    v33 = *(_DWORD *)v39;
    LOBYTE(v45) = 5;
    if ( v33 )
    {
      if ( v33 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)v39, 0xFFFFFFFF) )
      {
LABEL_53:
        if ( *(_BYTE *)(*v29 + 20) )
          sub_17D53F0((void *)0x20);
        v34 = *v29;
        v35 = sub_17D53F0((void *)0x22);
        sub_17D54E0(v35, &a1);
        sub_17D53F0((void *)0x22);
        if ( *(_BYTE *)(*v29 + 20) )
          sub_17D53F0((void *)0x20);
        LOBYTE(v45) = 0;
        sub_10BA600(&v40);
        v36 = a1;
        v37 = *(_DWORD *)a1;
        v45 = -1;
        if ( v37 )
        {
          if ( v37 == -1 || _InterlockedExchangeAdd((volatile signed __int32 *)a1, 0xFFFFFFFF) )
            return 0;
          v36 = a1;
        }
        sub_17C1990(v36);
        return 0;
      }
      v32 = v39;


return 0 设上断点,断过去,


ext:012FA063 xor    al, al   ,改成mov al,1 就行了
.text:012FA065 mov     ecx, [esp+3Ch+var_C]
.text:012FA069 mov     large fs:0, ecx
.text:012FA070 pop     ecx
.text:012FA071 pop     edi
.text:012FA072 pop     esi
.text:012FA073 pop     ebp
.text:012FA074 pop     ebx
.text:012FA075 add     esp, 28h
.text:012FA078 retn


http://www.lryc.cn/news/2412584.html

相关文章:

  • springboot笔记整理(超详细,手把手教程!)
  • 真正的RISC-V开发板——VEGA织女星开发板开箱评测
  • ROS学习笔记-安装、环境搭建、初步体验与基本包命令
  • 2020-12-21细雨算法2.0解读
  • 一款免费无限制的AI视频生成工具火了!国内无障碍访问!目前真正免费无限制,可以用来制作抖音短视频,视频效果体验不逊色于pika和runway,以及其他的免费AI在线人工智能大模型, 附教程
  • 计算机专业毕业设计题目大全——各种类型系统设计大全
  • 磁盘分区格式FAT32与NTFS
  • 网络入门基础(网络布线)
  • 2017 我的第一篇个人博客
  • 移动网络为什么“慢”? 腾讯工程师分享弱联网优化之道
  • 卷上天!上海交大博士应聘中学保健员 复旦附中回应
  • 大学操作系统课程笔记
  • 渗透利器Weevely之奇淫技巧篇
  • 大学英语四级考试大纲
  • 高仿富途牛牛-组件化(三)-界面美化
  • QQ快速登录实现原理分析之localhost.ptlogin2.qq.com 怎么会映射到 127.0.0.1问题
  • 学编程需要哪些入门标准?(非常详细)零基础入门到精通,收藏这一篇就够了
  • 互联网 Java 工程师面试题1
  • web端使用HTML5开发《捕鱼达人》小游戏教程
  • C/C++编写的人机猜拳游戏教程
  • thzvv.com forum php,为什么Naver账号不能用了?
  • 2023年3月Python三级
  • 简单使用Kali WiFi破解实例
  • minecraft java版皮肤查看_厨师长教你:提取 Minecraft 基岩版付费皮肤并用于 Java 版...
  • linux服务篇-HTTP服务
  • 运用PARALLEL方式成倍提升Oracle数据分析效率
  • /dev/null的总结
  • Ubuntu chmod 命令修改文件chmod读写权限
  • LDAP服务器搭建Linux
  • 中国互联网公司员工平均年龄出炉,平均年龄最低 27 岁,最高 33 岁