一个.sys文件,应该是驱动程序。反正当个exe文件处理吧。

在数据区找到两个串,感觉是加密用的qword_16310,qword_16390,顺着这个线索找引用处。于是找到sub_113c8 手工找也行,因为一共也没几个函数。

__int64 sub_113C8()
{PVOID v0; // rbxint v1; // er11int v2; // edx_DWORD *v3; // raxint v4; // ecx__int64 v5; // raxsigned __int64 v6; // r8__int64 result; // raxchar Dst; // [rsp+20h] [rbp-38h]memmove(&Dst, sub_11DF0, 0x22ui64);v0 = ExAllocatePool(0, 0x22ui64);memmove(v0, &Dst, 0x22ui64);dword_16414 = ((__int64 (__fastcall *)(signed __int64, signed __int64))v0)(3435209541i64, 1412570316i64);// 0xccc12345,0x54321cccExFreePoolWithTag(v0, 0);v1 = dword_16414;                             // 0x5c3113c5v2 = dword_16414 - 1546720155;                // 42v3 = qword_16310;do{*v3 ^= v1;++v3;}while ( (signed __int64)v3 < (signed __int64)qword_16390 );v4 = 0;v5 = v2;SubStr = (wchar_t *)qword_16310;word_16432 = v2;word_16430 = v2;qword_16310[v5] = 0;qword_16310[v5 + 1] = 0;v6 = 0i64;do{qword_16390[v6] ^= qword_16310[v4];++v6;result = (unsigned int)((v4 + 1) / (unsigned __int16)v2);v4 = (v4 + 1) % (unsigned __int16)v2;}while ( v6 < 128 );return result;
}

这里先把sub_11DF0给Dst再殷Dst给v0再运行v0其实就是运行sub_11DF0

unsigned __int64 __fastcall sub_11DF0(__int64 a1, __int64 a2)
{return a2 & 0xF0F0F0F0F0F0F0F0ui64 ^ a1 & 0xF0F0F0F0F0F0F0Fi64;
}

所有参数都已经给出了,可以顺序得到dword_16414 = 0x5c3113c5 再逄出v2=42(从数据也可看出长度)

然后给qword_16310和v1做个异或(因为v3是dword类型的,每4字节作一次),再然后就是390和310异或了。

解码

from pwn import *v = 0x54321ccc & 0xF0F0F0F0F0F0F0F0 ^ 0xccc12345 & 0x0F0F0F0F0F0F0F0F #0x5c3113c5a = [0x5C5813A25C6E1395,0x5C5413885C5413B3,0x5C5013A95C57139A,0x5C0213F75C6E13A2,0x5C4913B15C1F13F6,0x13B1]
b = b''
for i in a:b +=p64(i^ 0x5c3113c55c3113c5)
print(b)c = [0x6105664765377470,0x733A416D730C2011,0x6E285F096C166D36,0x6F5C686D6531690B,0x780002726A5F58,0x67005F00500074,0x4D006500760069,0x6C0066005F0065,0x32005F00670061,0x74002E00330033,0x5F005000740078,0x65007600690067,0x66005F0065004D,0x5F00670061006C,0x2E003300330032,0x50007400780074]
d = b''
for i in c:d +=p64(i)
print(d)e = []
for i,v in enumerate(d):e.append(v^b[i%42])print(bytes(e))
#A_simple_Inline_hook_Drv
#RCTF{A_simple_Inline_hook_Drv}

[XCTF-Reverse] 69 XCTF 3rd-RCTF-2017_MyDriver2-397相关推荐

  1. Xctf Reverse菜鸟题解之csaw2013reversing2

    Xctf Reverse菜鸟题解之csaw2013reversing2 IDA Pro静态分析 x32dbg动态调试分析 绕过反调试机制 IDA Pro静态分析 x32dbg动态调试分析 绕过反调试机 ...

  2. xctf php序列化,xctf一道反序列化题

    右键get源码: 1 <?php2 $user = $_GET["txt"];3 $file = $_GET["file"];4 $pass = $_GE ...

  3. XCTF final noxss

    0x01 题目描述 这次题目主要是通过css注入提取script里一个变量的值,即flag 我们举个例子,先贴出代码. <!DOCTYPE html> <html lang=&quo ...

  4. XCTF BUG( 越权 修改forwarded头 文件上传) UNFINSH(二次注入 python脚本) 学习过程

    最近忙着入职和处理一些杂事,更新的确比较少了.不过在周末还是正好有空的,正好刷刷XCTF. 目录 XCTF BUG 注册账号 越权漏洞 文件上传 XCTF UFINISH XCTF BUG 首先进行常 ...

  5. CTF入门指南(0基础)

    ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等 misc 杂项,隐写,数 ...

  6. CTF入门指南 | 内附教程分享

    如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 Pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等 Misc 杂项,隐写,数据还原,脑洞.社 ...

  7. 网络安全技术CTF竞赛模式与训练平台

    CTF竞赛是安全圈喜闻乐见的竞赛模式,对于培养网络安全技术人才起到了很重要的作用.CTF起源于1996年DEFCON全球黑客大会,是Capture The Flag的简称.经过多年的发展,CTF这种比 ...

  8. 零基础CTF入门指南+工具

    ctf入门指南 CTF工具包获取地址:http://www.ctftools.com/ 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析 ...

  9. CTF学习经验分享(Web方向)

    本人Web安全初学者,记录分享一下学习历程,推荐评价仅代表个人观点,不足之处欢迎各位表哥指正-- CTF基础知识: 分类: 基础知识 | CTFHubEnjoy your's CTFhttps://w ...

  10. 004--自找麻烦之 vue2.0

    人的差异其实很小:一,你在犹豫,他在做,所以他比你成功机会多;二,你在找借口,他在解决问题,所以他比你事业有成;三,你在消费,他在理财,所以他比你更富足;四,你在算计自己的利益,他在考虑对方的利益,所 ...

最新文章

  1. CentOS 7 安装Boost 1.67及boost_python
  2. Lucene核心数据结构——FST存词典,跳表存倒排或者roarning bitmap 见另外一个文章...
  3. 基本数据结构和算法回顾
  4. 通信upf是什么意思_5G给边缘计算带来了什么?
  5. 对比SQL Server和Oracle的关键参数
  6. java后台http请求完成之后怎么setcookie_关于HTTP的那些事和cookie
  7. 「第一篇」大学生电子设计竞赛,等你来提问。
  8. 国内敏捷项目协作工具亲测推荐
  9. mPaaS-RPC 拦截器各种场景下的使用指南
  10. projecteuler_2020更新:#ProjectEuler100和#AWSCertified挑战
  11. python求均值标准差不用numpy_【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印...
  12. 普通人学python有意义吗-为什么那么多自学Python的后来都放弃了,总结起来就这些原因...
  13. EditPlus中文绿色破解版安装
  14. 苹果手机连接电脑服务器传文件,实用!三种iPhone与Windows电脑互传文件操作技巧,...
  15. ensp的下载与安装教程
  16. Python | MD5爆破及Base64/Base32爆破解密脚本
  17. 公众号基本的绑定手机号页面(截取code,手机号正则,验证码倒计时)
  18. 香港中文大学计算机专业学费,香港中文大学研究生专业学费是多少?
  19. 直角三角形面积Java_利用Eclipse编写第一个简单的Java程序,实现如下功能。 键盘输入:直角三角形两直角边a, b,根据勾股定理计算斜边的平方值。并输出。 例如:运行效果如下...
  20. sin45怎么用计算机,IT教程:sin45度等于多少

热门文章

  1. 软件测试必须知道的精华总结
  2. 第十四届恩智浦智能车竞赛小白四轮硬件总结
  3. Linux信号量详解
  4. 【DEVOPS】SVN Server迁移 - 从VisualSvnServer到iF.SVNAdmin
  5. linux命令行启动向日葵无法编辑,向日葵linux版无法启动
  6. nxlog以syslog方式发送日志
  7. nxlog windows安装部署
  8. Java虚拟机(JVM)字节码指令表
  9. 从支付架构到风控报警,支付系统的设计如何环环相扣?
  10. linux 怎么查看谁登过这台服务器,如何查看linux服务器是否被入侵