逆向
文章平均质量分 92
飞鸿踏雪(蓝屏选手)
住在二叉树上的小菜鸟,目标是蔚蓝的高空和绚烂的远方。草根二进制安全研究员,希望大佬多多指教
展开
-
Anti Rookit -- 检测隐藏进程
检测隐藏进程除了众所周知的枚举进程ID之外,还有枚举句柄表的方式。不过今天给大家带来的是第三种方法。原创 2024-04-27 23:49:50 · 1213 阅读 · 2 评论 -
ETW HOOK原理探析
关于ETW是什么我就不多说了,可以通过微软的相关文档了解到。据网上得知这项技术最早被披露于2345的驱动中,一位工程师将其代码逆向还原之后大白于天下。随后各大安全厂商相继使用这种技术实现监控系统调用、内存页错误等。它是一个相对于VT来说更稳定,更简单的系统监控方式。调用ZwTraceControlZwTraceControl启用ETW日志(Win8只有NtTraceControlNtTraceControl。原创 2023-11-11 20:58:37 · 1402 阅读 · 0 评论 -
Rookit系列一 【隐藏网络端口】【支持Win7 x32/x64 ~ Win10 x32/x64】
Rookit是个老生常谈的话题了,它包括隐藏进程、隐藏模块、隐藏端口等隐藏技术和其他对抗杀软的技术。作为一名二进制安全研究员你可以不去写这些代码,但你不能不懂,也因为最近隔壁组的同事在做这方面的检测向我请教了一些问题,索性我就利用空余时间研究了一下网络端口的隐藏。网上随便去搜搜隐藏端口的资料,发现能用的几乎没有。这才是我研究的动力和分享的意义。\textcolor{green}{这才是我研究的动力和分享的意义。这才是我研究的动力和分享的意义。于是就自己研究了一通,发现也没什么特别的。原创 2023-08-04 22:24:20 · 1120 阅读 · 8 评论 -
IrpTrace最新版注册算法分析
没有时间系列:由于工作需要用到该软件,于是顺便研究注册算法玩玩。又是一款歪果仁的软件,搞搞应该没事吧?文末有惊喜!【版本】02.00.002IrpTrace已经很久不更新了,这是我能在网上找到的最新版。。。。。原创 2023-03-01 23:09:21 · 609 阅读 · 0 评论 -
01Editor最新破解
注册的提示信息还有界面的提示信息很丰富,这为我们定位关键代码提供了充分的线索。此函数条件为真的分支存在多对1情况,导致逆函数不能保证得到正确的原函数输入,而原函数的输入在后面验证的时候还需要用到。因此,这个函数的逆函数没有意义。在满足条件3、6和7,就能确定hb中的所有元素,然后反求得serial。注意:这个函数是多对一的,所以这个函数的反函数就成了一对多。以上就是所有注册算法流程,接下来考虑如何获得正确的任意用户名的序列号。因为有处条件永不满足。,用来和序列号某个部分进行对比的,所以该函数也不用求逆。原创 2022-12-30 13:01:56 · 10492 阅读 · 5 评论 -
两道逆向题分析总结
HWS2021——Enigma前言这是一道来自华为2021硬件安全冬令营线上赛的一道虚拟机逆向题,比较有特点的是整个虚拟机的操作隐藏在了异常处理函数中,正常用类似 OD调试器不能顺利调试。这种反调试结合虚拟机技巧值得学习。分析工具:IDA 7.01.分析1.1.整体流程程序没有加壳,运行之后出现提示:根据关键信息,来到主函数:int __cdecl main(int argc, const char **argv, const char **envp){ FILE *fout; //原创 2022-03-31 16:40:32 · 5289 阅读 · 0 评论 -
Win7 x64下内核池溢出覆盖配额进程指针(Quota Process Pointer Overwrite)
0x0 简介在 Win7 x64位下,内核池的头部结构如下:nt!_POOL_HEADER +0x000 PreviousSize : Pos 0, 8 Bits // 前一个内核堆块大小除以0x10 +0x000 PoolIndex : Pos 8, 8 Bits // 该池所在池描述符表中的索引 +0x000 BlockSize : Pos 16, 8 Bits // 该池大小除以0x10 +0x000 PoolType原创 2022-03-19 20:24:07 · 1055 阅读 · 0 评论 -
2020网鼎杯玄武组re baby_vm复盘
2020网鼎杯玄武组re baby_vm wp,赛后参考大牛博客复盘学习并总结。原创 2022-02-27 16:54:11 · 1055 阅读 · 0 评论 -
CVE-2019-1458 分析
CVE-2019-14580x00 漏洞简介CVE-2019-1458是Win32k中的特权提升漏洞,Win32k组件无法正确处理内存中的对象时,导致Windows中存在一个特权提升漏洞。成功利用此漏洞的攻击者可以在内核模式下运行任意代码。然后攻击者可能会安装程序、查看、更改或删除数据;或创建具有完全用户权限的新帐户。0x01 影响版本Microsoft Windows 10 Version 1607 for 32-bit SystemsMicrosoft Windows 10 Version原创 2021-09-15 15:05:50 · 2396 阅读 · 0 评论 -
CVE-2018-0744 分析
CVE-2018-07440x1 漏洞简介Windows 8.1 和 RT 8.1、Windows Server 2012 和 R2、Windows 10 Gold、1511、1607、1703 和 1709、Windows Server 2016 和 Windows Server 版本 1709 中的 Windows 内核由于对象的处理方式而允许提权漏洞在内存中,又名“Windows 特权提升漏洞”。0x2 影响版本Windows 8.1Windows RT 8.1Windows Serv原创 2021-09-10 18:13:44 · 679 阅读 · 0 评论 -
CVE-2016-0095分析
CVE-2016-00950x1 前言这个漏洞曾被4年前的一场SSCTF比赛拿来出过题目,该漏洞利用起来很简单,但是善后工作并不能做得很完善,所以总体来说利用极不稳定。这里也不得不感叹,4年前的CTF比赛就这么硬核了,没有人带着打比赛真的是太难了~如果仅是作为赛后复盘的话,没必要说清楚漏洞产生,只管利用就好了,但是这里作为分析,所以还是尽可能讲清楚漏洞的前因后果。0x2 漏洞简介Microsoft Windows Vista SP2、Windows Server 2008 SP2和R2 SP1、原创 2021-08-17 14:48:12 · 661 阅读 · 0 评论 -
CVE-2016-07255 分析
文章目录CVE-2016-072550x1 漏洞描述0x2 影响版本0x3 漏洞分析■ xxxNextWindow 逆向分析■ 漏洞验证■ 漏洞利用■ EXP■ 演示0x5 总结0x6 参考CVE-2016-072550x1 漏洞描述在windows的图形处理驱动win32k.sys中,函数 xxxNextWindow\textcolor{cornflowerblue}{xxxNextWindow }xxxNextWindow未检查对象的合法性就直接使用,存在安全隐患。攻击者可以通过精心设置该对原创 2021-08-14 11:51:11 · 474 阅读 · 0 评论 -
CVE-2016-0167分析
文章目录CVE-2016-01670x1 前言0x2 漏洞描述0x3 影响版本0x4 评级0x5 漏洞分析■ xxxMNDestroyHandler逆向分析■ MNFreePopup逆向分析■ HMAssignmentUnlock逆向分析■ MNFlushDestroyedPopups■ xxxMNDestroyHandler简要执行流程图■ xxxTrackPopupMenuEx逆向分析■ xxxMNLoop逆向分析■ 一条通往xxxMNDestroyHandler的路径分析0x6 漏洞利用■ 漏洞触发■原创 2021-08-12 16:12:13 · 793 阅读 · 0 评论 -
CVE-2015-2546 分析
文章目录CVE-2015-25460x0 漏洞描述0x1 影响版本0x2 漏洞分析■ xxxMNMouseMove逆向分析■ xxxMNFindWindowFromPoint逆向分析■ xxxSendMessage逆向分析■ xxxMNFindWindowFromPoint简要执行流程■ xxxMNHideNextHierarchy逆向分析■ xxxMNDestroyHandler逆向分析■ xxxMNMouseMove简要执行流程0x3 漏洞利用■ 漏洞利用简要流程图■ 内存释放后重用■ 漏洞利用的细节原创 2021-08-07 18:48:04 · 830 阅读 · 0 评论 -
广西CTF-labyrinth WP
前言这是一个另类的迷宫模型。在我第一次拿到手上分析的时候,因为没有注意到程序的名字,尽管代码量很小,输入和校验都比较集中,也能看懂,但依然是不知道该怎么逆。花了一天的时间,后面搜了一下 “labyrinth” 才知道是 迷宫、曲径 的意思。再结合程序的代码,一下子就确定了算法的模型——迷宫。为何说它另类,且看代码。代码在初始化函数中,随机生成了一张迷宫图。但是解是唯一的,说明迷宫图...原创 2019-12-08 13:51:44 · 313 阅读 · 1 评论 -
D0g2019-re_Easy_Encryption WP
前言最近时间很紧,这道题也不复杂,动态跟踪一下就能知道,后面就长话短说了。分析在Transform函数中,程序将检查是否全是小写,不是小写就退出。是小写就将Base64字符表的每个字符减去0x61存入一个变量(且记为offs)中,然后进行如下变换:input[i]=((input[i]+offs[i]-0x61)%0x1a)+0x61然后进行base64加密,结果等于YXJ...原创 2019-12-04 17:00:16 · 239 阅读 · 0 评论 -
D0g2019-re game WP
分析程序进行了混淆,不过符号没有去掉并通过动态调试还是能够理清程序的思路。程序一开始先生成一个九宫格:1 0 5 3 2 7 0 0 88 0 9 0 5 0 0 2 00 7 0 0 1 0 5 0 34 9 0 1 0 0 3 0 00 1 0 0 7 0 9 0 67 0 3 2 9 0 4 8 00 6 0 5 4 0 8 0 90 0 4 0 0 1 0 3 0...原创 2019-12-04 16:24:43 · 476 阅读 · 0 评论 -
DDCTF2019 confused WP
前言有一段时间没更新博客了,主要是事情太多。这是上半年的比赛遗留下的问题,决心好好琢磨一番。后续会更新hackgame2019的部分题解和其他平台上的题解。分析这是一道ELF64位的虚拟机逆向。首先通过初始化虚拟机函数:void *__fastcall init_vm(VM *vm, const void *input){ vm->reg_0 = 0; vm->...原创 2019-10-27 11:42:08 · 415 阅读 · 0 评论 -
360CTF——BigNum WP
前言在360CTF之前,进行了4天的hackgame2019比赛,也许是累了,整场360CTF都在划水,心情很糟糕,本来自己也是很菜。赛后调整了状态,继续逆完了这道题。分析我对check1里边的两个乘法有点迷。首先异或16个字节,然后初始化一个大整数类,进行第一次运算,被乘数是异或之后的16字节。跟踪发现走的是乘法分支,但是没有追到乘数。真的很蠢,既然没有乘数,怎么就不会想到是自...原创 2019-10-20 17:52:41 · 577 阅读 · 0 评论 -
DelCTF2019 Cplusplus WP
前言错过了这场比赛,赛后补上。虽有WP可以参考,但是复现起来还是磕磕绊绊。我总不想去依赖wp,于是先自己去分析,一开始好多看不懂的代码,睡过去了,积极性受打击,遂搁置了一天。断断续续逆了3天,然后参考WP,终于弄懂了。分析程序无壳,用IDA分析。主要过程分为三步,每一步就是flag的一个组成部分。通过单步调试,可以知道flag的第一部分与第二部分用 @ 做分割,第二部分与第三部分用 #...原创 2019-10-03 23:01:08 · 757 阅读 · 2 评论 -
KCTF2019 Q3 签到题WP
前言从这一次开始制定了新规则后,本来就是菜鸡的我连签到题都跪了。┭┮﹏┭┮。赛后看到别人的题解才知道自己栽在了哪里。分析程序首先将输入的user_name转成十六进制,不足十六位用0补齐,然后将输入的serial转成相应的数值,与自身比较。这一步主要是为了校验serial是否是大写的十六进制数据。然后将十六进制的serial与十六进制的uername 异或,后面就是三次MD5。其实...原创 2019-09-25 17:10:12 · 318 阅读 · 0 评论 -
一次不太理想的逆向之simple-vm
前言之所以说是不太理想,不是因为解不出来 flag ,而是部分流程不明确,最后的结果也是猜测出来的。尽管有相关的 writeup 但是对于里面提到的一些关键信息,我未能从反编译结果中获取。分析打开同目录下的文件,读取数据到 ptr 中,开始虚拟机。先看一下 bin 文件再来关注 VM_Start 函数。 __int64 sub_400896() { __in...原创 2019-08-25 20:41:00 · 331 阅读 · 0 评论 -
DDCTF-Evil Exe-WP
题目描述挑战:《恶意软件分析》赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件。随后IT部门发现小A的电脑发出了异常网络访问请求,进一步调查发现小A当时所打开的附件其实是一个伪装成word文档的恶意可执行文件。赛题描述: 请在试着分析evil.exe和其所下载的x.jpg, 从中找出key.评分标准: 密钥正确则可进入下一题。查壳一个识别不出,一个识...原创 2019-08-20 12:12:41 · 453 阅读 · 0 评论 -
DDCTF2018-黑盒破解 详细WP
分析直接在IDA中打开,找到 main 函数程序一开始需要我们输入一串 10 位长的密码,然后拼接字符串成 “flag-****.txt” 的形式,然后打开这个文件,读入数据到内存。实际上这个就是 flag 文件,只有当满足后续条件时,程序就会打印出来。这个条件就是输入一段passcode,让程序输出 “Binggo” 。大致看上去,后面的这几个函数是与虚拟机有关的。作者自己编...原创 2019-08-23 17:38:10 · 1090 阅读 · 5 评论 -
Reverse-shell WP
前言非常感谢子昂师傅分享的wp,从中学习到了一种逆向的思路。关于此题,我主要打算讲三点:1.脱壳2.关键函数该怎么找3.golang编写的程序的一些特点分析【查壳】64位程序加了UPX壳,我是头一次遇见的,没什么好的工具管用,只能x64gdb手脱。可是这个程序有些奇怪,一开始断下来的位置并不属于用户态这点与32位程序加了UPX后的不同。尝试使用ESP定律脱壳,在x64db...原创 2019-08-09 15:53:57 · 327 阅读 · 0 评论 -
攻防世界-IgniteMe WP
查壳分析IDA反编译:主要的验证算法在 sub_4011C0中:`bool __cdecl sub_4011C0(char *a1) { size_t v2; // eax signed int v3; // [esp+50h] [ebp-B0h] char v4[32]; // [esp+54h] [ebp-ACh] int v5; /...原创 2019-07-28 15:11:17 · 389 阅读 · 0 评论 -
XCTF 4th-WHCTF-2017-CRACKME
查壳分析看图标就猜得出是MFC框架的,不过这次的MFC和之前遇到的不一样。主要是在载入主窗口的方式不一样,导致分析的难度也就不一样。通过字符串索引,来到载入主窗口那个地方这是以非模态的方式载入对话框。不管是模态还是非模态,这样的方式都表示着所有的消息处理函数均在类中。而MFC是个大类,所以得需要一些线索才能够找到大海里的那根针。这个线索正是注册码错误时弹出的信息框,并...原创 2019-07-30 15:07:47 · 684 阅读 · 0 评论 -
攻防世界-reverserMe WP
查壳分析程序主要代码:程序的流程主要是将输入的数据进行base64解码,然后循环异或0x25,最后与正确结果对比。这道题的难点主要就是分析base64decode和辨别junk code。首先还是进入base64decode去看看:这部分主要是验证输入的合法性,然后准备开始解密base64的字母表(通过观察byte_12A4E40可知)。这也正是用算法分析器分析不出来是ba...原创 2019-07-30 14:33:07 · 377 阅读 · 0 评论 -
TWCTF-reverse_box WP
分析IDA分析代码 int __cdecl main(int argc, char **argv) { size_t i; // [esp+18h] [ebp-10Ch] int randnumber; // [esp+1Ch] [ebp-108h] unsigned int v5; // [esp+11Ch] [ebp-8h] v5...原创 2019-07-29 16:45:47 · 628 阅读 · 0 评论 -
逆向Fibonacci-WP
前言此题考察的是如何将一个被Jar2Exe打包的java程序进行解包详情请撮 https://blog.csdn.net/ravinow/article/details/51123839分析64位未知的可执行程序,用IDA打开可以看到很多很复杂的代码。看不太懂,于是单步跟了几次。发现程序会解密一段代码,然后开启一个线程去执行解密出来的代码。但是线程里边函数下断似乎没什么好的效果。...原创 2019-08-18 12:05:39 · 244 阅读 · 0 评论 -
GameTime-WP
分析无壳,程序代码有点复杂 int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // edi unsigned int v4; // eax int v5; // ecx int v6; // ecx int v7; // ecx void...原创 2019-08-31 23:33:42 · 311 阅读 · 0 评论 -
MFC逆向-200 wp
分析根据提示,可用窗口嗅探器之类的工具进行查看感觉类名很可疑,试着提交发现错了。em,再看看是不是要发送刷新控制之类的消息让它有所改变。当发送的消息码为 1124 时控件刷新了数据,并且也暗示了控件类名时DES加密后的数据,求解得到flag。总结主要就是对窗口控件的消息机制做个了解和窗口嗅探工具的使用。...原创 2019-09-25 12:33:48 · 266 阅读 · 2 评论 -
Akira Homework WP
分析无壳,直接用IDA打开。运行程序时提示的字符串在IDA中未能找到,一定是运行才会解密。于是IDA动态调试,下断在 start 结果立马就被结束进程了,猜测可能在 TLS 回调中有调试器检测。果不其然:将反调试patch掉,重新动态调试。单步发现程序起用了一个线程,线程函数中的 sub_140008B20正常情况下引起程序结束,需要patch掉。还有 sub_140008500 里边...原创 2019-09-11 19:02:21 · 569 阅读 · 0 评论 -
SUCTF2019-hardCPP WP
前言这两天参加了 NU1LCTF 和 ByteCTF ,签了到之后发现一题都做不出来 /(ㄒoㄒ)/~~ ,很受伤。所以打算回顾一下错过的 SUCTF2019 ,多积累经验和学习更多的技术。分析IDA打开,发现程序是 LLVM 编译的,还加了花指令,导致看起来非常绕。坑爹的是还不能动态调试,只能静态分析了。过程难以描述,这里就贴一下正确的执行步骤吧: int __cdec...原创 2019-09-08 18:10:29 · 866 阅读 · 0 评论 -
Signal-WP
分析IDA反编译,经过分析部分函数名已被我重定义。是 RSA 没错了。脚本import gmpy2p=282164587459512124844245113950593348271q=366669102002966856876605669837014229419e=65537n=103461035900816914121390101299049044413950405...原创 2019-09-06 19:39:53 · 165 阅读 · 0 评论 -
serial WP
分析程序的结构被打乱了,所以IDA只识别出来了启动函数。先在linux下跑一下程序看看IDA中搜索提示的字符串,在相应位置下个内存读写断点动态调试,后面就是单步跟踪,直到跟到与我们输入的数据相关的部分。首先会跟到这处:rdi 里存的即是我们输入的数据所在的地址,在此看来输入的长度规定为 0x10 。输入数据存放在:接下来继续单步,不要放过任何一个函数,就得到了整个检测的过程:...原创 2019-09-05 22:40:30 · 160 阅读 · 0 评论 -
RCTF-2015-notsequence WP
前言这道题目有多解,但是只有一组解是flag。再次提醒自己,搞逆向的数学一定要学好,至少大学之前的数学还能有印象!分析程序无花无壳,直接IDA反编译。结构很清晰,分别来看这两个 check 函数。通过测试可以得知这些 下标 的含义,如果我们用符号来作为输出,就会很清晰了:然后这个函数检测的就是行 i 的数字之和 v3 = 2i。其实数学好的话,仅看这个函数就立马想到是 杨辉...原创 2019-09-05 21:48:32 · 1478 阅读 · 0 评论 -
easyre-153 WP
前言这个程序逆向起来还是挺懵逼的。一向我都是习惯了程序有提示输入,然后输出结果。程序的路径很多,找到正确路径花费了比较长的时间,我就直接说正确的做法了。分析IDA打开,动态调试,跟踪到:需要强制执行 if 里的代码块,当执行到(注意:此句代码还未执行):将同目录下生成的 AAAAA 开头的文件拖入IDA:程序会创建一个管道,然后开启一个子进程进行进程间通信。子进程将 698...原创 2019-09-01 10:49:09 · 693 阅读 · 0 评论 -
APK逆向2-WP
前言不要被题目给蒙蔽了,这根本不是 安卓 逆向!分析C# 编写的程序,用 dnspy 反编译 using System; using System.Diagnostics; using System.IO; namespace Rev_100 { // Token: 0x02000002 RID: 2 internal class Progra...原创 2019-08-31 23:43:42 · 540 阅读 · 0 评论 -
SUCTF-2016-srm-50 WP
查壳没有壳,32位可执行程序。运行一下程序,可知是MFC框架的对话框程序,随便输入数据,点击注册失败。分析IDA分析,找到winmain,这是MFC的主函数 int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { re...原创 2019-07-29 11:25:36 · 457 阅读 · 0 评论