首页 > 其他分享 >【BUUCTF】Youngter-drive

【BUUCTF】Youngter-drive

时间:2024-10-28 23:09:09浏览次数:5  
标签:BUUCTF sub drive hObject flag dword StartAddress Youngter 418008

Youngter-drive

UPX脱壳

分析

image-20241028214938347

这是一道多线程题,先来分析这个main函数

::hObject = CreateMutexW(0, 0, 0); : 创建一个互斥锁,使两个双线程能够使用共享资源

hObject = CreateThread(0, 0, StartAddress, 0, 0, 0); Thread = CreateThread(0, 0, sub_41119F, 0, 0, 0); :创建两个线程

while ( dword_418008 != -1 ) : 一直循环到dword_418008为-1结束程序

分析双线程程序

跟进StartAddress

void __stdcall __noreturn StartAddress_0(int a1)
{
  while ( 1 )
  {
    WaitForSingleObject(hObject, 0xFFFFFFFF);
    if ( dword_418008 > -1 )
    {
      sub_41112C(&Source, dword_418008);
      --dword_418008;
      Sleep(0x64u);
    }
    ReleaseMutex(hObject);
  }
}

Sleep(0x64u); :先第一个程序运行后,sleep,然后马上运行第二个进程,然后sleep,又运行第一个,循环

sub_41119FStartAddress的区别就是第一个调用了sub_41112C函数对字符串进行了加密

image-20241028231153385

这就是主加密程序

简单的字母替换程序

编写脚本

key = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
enc = 'TOiZiZtOrYaToUwPnToBsOaOapsyS'
flag = ''
for i in range(29):
    if i % 2 == 0:
        flag += enc[i]
    else:
        if ord(enc[i]) <= ord('Z'):
            flag += chr(key.index(enc[i]) + 96)
        else:
            flag += chr(key.index(enc[i]) + 38)
print(flag)

ThisisthreadofwindowshahaIsES

但这个flag不完整,最后一位也不知道咋搞,只能爆破了

最后flag:ThisisthreadofwindowshahaIsESE

标签:BUUCTF,sub,drive,hObject,flag,dword,StartAddress,Youngter,418008
From: https://www.cnblogs.com/murasame520/p/18511897

相关文章

  • 在 Kubernetes 中运行 Locust 与 Selenium:安装 Chrome 和 ChromeDriver
    在现代软件开发中,性能和用户体验是至关重要的,而负载测试和自动化测试可以帮助我们实现这一目标。在本文中,我们将讨论如何在Kubernetes环境中运行Locust和Selenium,并详细介绍如何安装Chrome和ChromeDriver。1.Dockerfile配置首先,我们需要创建一个Dockerfile,以构建一个......
  • [BUUCTF]喵喵喵
    [BUUCTF]喵喵喵分析题目是一张图片,打开属性,放入010editor,无果;于是想到LSB隐写解题发现一张PNG,但开头不太对劲将其保存txt文件,发现放入010editor并不可以修改开头在某位大佬博客中学到一个方法,如下:首先,在notepad中打开txt文件Alt按列选择左侧复制,放入Cyberchef两者交......
  • BUUCTF_BUU SQL COURSE 1
    BUUCTF_BUUSQLCOURSE1打开实例发现“热点”及“登录”两个选项根据题目提示,sql注入,尝试在登录界面寻找注入点,无果接着进入热点界面,发现三篇新闻,依次点击发现url变化,burp抓包发现是通过对id值的控制访问不同界面,由此发现注入点1.判断注入类型,输入1,2-1?id=1?id=2-1......
  • 英特尔的快速存储技术和苹果的Fushion Drive有什么区别
    在提升计算机系统存储性能的探索中,英特尔的快速存储技术(IntelRapidStorageTechnology,RST)与苹果的FusionDrive代表了两种不同的技术路径。英特尔的RST是一种存储性能加速技术,通过缓存机制优化传统硬盘与固态硬盘的数据读写。而苹果的FusionDrive则是一种混合存储解决方案,它......
  • BUUCTF_2020网鼎杯[朱雀组]phpweb
    BUUCTF_2020网鼎杯[朱雀组]phpweb启动环境页面出现warning,并且发现页面存在自动刷新,使用burpsuite抓包:发现两个参数func和p并且发现页面中有2024-10-2403:55:59am,判断执行了date函数,根据func和p的形式猜测函数执行,func输入函数,p输入语句获取源代码:func=highlight_file&p=......
  • 在Linux命令行下载Google Drive大文件(解决Google Drive下载慢的问题)
    文章目录1、使用gdown命令2、复制链接3、替换为Linux下载链接注意:在Linux命令行进行1、使用gdown命令wget只能下载小文件,大文件需要用到gdownpipinstallgdown#如果不能够直接安装,使用以下命令gitclonehttps://github.com/wkentaro/gdowncdgdownpipin......
  • platform_device_register 和platform_driver_register;有些驱动里没有platform_device
    platform_device_register和platform_driver_register是Linux内核中用于注册平台设备和平台驱动程序的函数。为什么很多驱动里没有platform_device_register在Linux内核中,不是所有的驱动程序都需要显式调用platform_device_register函数来注册平台设备。这是因为设备驱动程序可以......
  • Ubuntu 24.04使用virtualBox启动虚拟机提示Kernel driver not installed的解决办法
    1.Ubuntu安装virtualBoxvirtualBox官方下载对应ubuntu24.04系统的deb安装包进入到下载文件所在目录使用如下apt命令安装下载好的deb安装包sudoaptinstall-f./virtualBox*2.启动虚拟机提示“Kerneldrivernotinstalled”由于我装的是双系统,ubuntu挂载了windows下使......
  • 解决driverClassName: com.mysql.cj.jdbc.Driver报红问题
    为将项目从postgre库转为本地mysql数据库,需要将数据库驱动改为mysql1.在父工程的pom中引入数据库<!--Mysql驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><v......
  • [BUUCTF]丢失的MD5
    [BUUCTF]丢失的MD5分析打开,得到py文件importhashlibforiinrange(32,127):forjinrange(32,127):forkinrange(32,127):m=hashlib.md5()m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+&......