首页
社区
课程
招聘
7
[原创]Windows10代码还原汇编特征汇总(附NTDLL CreateHeap还原代码)
发表于: 2025-2-13 20:55 7750

[原创]Windows10代码还原汇编特征汇总(附NTDLL CreateHeap还原代码)

2025-2-13 20:55
7750

Windows10 代码还原汇编特征汇总(NTDLL)

前言

大家好,我是武汉科锐逆向CR49期的一名学员,我写这篇文章的目的是想帮助刚开始或者准备开始研究windows系统的人员,此篇文章仅作为经验分享,是我在逆向还原windows10堆API CreateHeapAllocateHeap以及AllocateHeapInternal源代码时总结的一些经验,如有错误请各位前辈斧正。我们仅分享其windows10 ntdll中常见的一些汇编特征优化,如若不涉及的优化请各位自行翻阅资料学习。

环境

分析环境: Windows11
工具: Windbg, IDA7.5
分析目标平台: Windows10
分析目标文件: C:\Windows\SysWow64\ntdll.dll(32位)
版本信息:10.0.19041.5007 (WinBuild.160101.0800)
SHA-1:9C3A55D17C022D7B32EE558E8941C4C9938696CA

大纲

0x0 常见Release版优化梳理

0x1 临时变量优化

0x2 0值寄存器传递

0x3 函数调用约定优化

0x4 if特征与平坦化优化(if反转)

0x5 push pop寄存器赋值

0x0 常见Release版优化梳理

对于常见的Release版编译的优化此篇文章涉及到的有
CPU流水线优化
真正的CPU流水线优化有许多概念且十分复杂,但是体现在代码中的我们只需要关注一些会影响我们分析的内容,比如乱序执行我们以最经典的三级流水线为例举出例子方便大家简易回顾一下流水线优化。如下三个操作分别由三个不同的CPU组件同步执行
● 取指令
● 译码
● 执行
在CPU中形如如下流程,但是流水线优化只会优化无相关关联的代码譬如:mov eax, imm32 mov ebx, imm32 等,而如果出现一个指令序列其中的前后代码相关联则会破坏该处的流水线优化,对于3级流水线来讲最好情况是3行代码互相无关。
下面我们给出相关图例辅助理解
图片描述
一旦出现的一组代码(A组)可以组成流水线优化则意味着该组代码A的执行顺序与组内其他代码无关,且改组代码也有可能与其他组代码无关,此时编译器有可能将该组代码提前(延后)到某组代码(B组)后执行且不会影响程序的逻辑,最简单的情况就是__cdecl后的调用方的平栈代码add esp, imm在ntdll中如果出现调用函数为__cdecl就有可能出现这种优化可能会在后面的代码中穿插一条平栈代码,在还原代码时我们只需要跳过即可。
加法优化(比例因子优化)
对于加法通常我们能看到利用lea指令进行优化,譬如eax + eax + 1在优化版中会出现形如lea eax, [eax+eax+1]等优化类型但是在此次还原中出现较少。

0x1 临时变量优化

在逆向的过程中我们经常能看到如下片段
图片描述
对于这种情况我们在初次见到时如果发现前面的esi原先为某个变量值但是被赋值覆盖掉了原值,然后中间经过一系列操作运算传入了某个函数或者放入了某个变量,则有可能是编译过程编译器将临时变量优化掉了导致的譬如如下C代码

1
2
3
4
5
DWORD add(DWORD a, DWORD b)
{
    DWORD dwRet = a + b;
    return dwRet;
}

[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

最后于 2025-2-14 16:00 被TeddyBe4r编辑 ,原因: 修改介绍
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
米龙·0xFFFE
+1
你的分享对大家帮助很大,非常感谢!
2025-2-15 15:57
mb_aimnntrv
+1
感谢你分享这么好的资源!
2025-2-14 11:12
backer
你的帖子非常有用,感谢分享!
2025-2-13 23:04
mb_mkhkgduq
感谢你分享这么好的资源!
2025-2-13 22:33
mb_ibpynrwn
为你点赞!
2025-2-13 21:50
xichang13
+1
感谢你的积极参与,期待更多精彩内容!
2025-2-13 21:27
mb_bcrzdpsm
你的分享对大家帮助很大,非常感谢!
2025-2-13 21:06
最新回复 (7)
雪    币: 3124
活跃值: (4364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你的分享对大家帮助很大,非常感谢!
2025-2-13 21:32
1
雪    币: 67
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
大佬牛逼!
2025-2-13 21:48
0
雪    币: 220
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
alu
4
历害了!点赞!
2025-2-14 11:29
0
雪    币: 21
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
可以寻求帮助吗
2025-2-15 19:33
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
mb_nkihouey 可以寻求帮助吗
历害了!点赞!
2025-2-16 16:24
0
雪    币: 2545
活跃值: (3394)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
人肉F5吗
2025-2-18 11:17
0
雪    币: 825
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
一个大大的服字,牛逼了。
2025-2-18 22:25
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册