Frida在windows上的玩法

简介: Frida在windows上的玩法

一、目标


frida玩了很久,andriod和ios下都玩的不错。不过飞哥其实是混windows出道的,那frida能不能分析winPE呢?


今天介绍下Windows下的玩法,要点如下:


  • Hook Windows Api
  • 修改参数和返回值
  • 主动调用Windows Api


二、步骤


打开心爱的MFC

写个demo小程序,密码是 1234 ,输入正确提示 "密码正确"。


Hook MessageBoxA

var pMessageBoxA = Module.findExportByName("user32.dll", 'MessageBoxA')
Interceptor.attach(pMessageBoxA, {
    onEnter: function (args, state) {
        console.log("[+] MessageBoxA");
        console.log("¦- hWnd: " + args[0]);
        console.log("¦- lpText: " + Memory.readAnsiString(args[1]));     
        console.log("¦- lpCaption: " + Memory.readAnsiString(args[2]));    
        console.log("¦- uType: " + args[3] + "\n");
    },
    onLeave: function (retval, state) {
    }
});


迫不及待了,好久没有玩windows,跑一下,我们输入 "1234"56.png


修改入参和返回值

console.log("[!] Hooking lpText: 真的对吗");
this.lpText = Memory.allocAnsiString("真的对吗"); // Allocate new heap ANSI string
args[1] = this.lpText; // Replace lpText pointer


在跑一下,真的对吗?57.png


修改返回值就比较简单了,这个例子修改返回值也没啥用。

console.log("retval: " + retval.toInt32());
retval.replace(0);       
console.log("retval modify: " + retval.toInt32());


主动调用Windows Api


我们来试试如何主动调用 MessageBox,首先按照函数原型,创建对应的 NativeFunction 函数,然后创建好入参,就可以调用了。

var pMessageBoxW = Module.findExportByName("user32.dll", 'MessageBoxA')
var lpText = Memory.allocAnsiString("I'm New MessageBox");
var funMsgBox = new NativeFunction(pMessageBoxW, 'uint32',['uint32','pointer','pointer','uint32']);
// 调用
funMsgBox(0,ptr(lpText),ptr(lpText),0);


完美搞定~59.png


启动命令


最后说一下启动的命令,因为一开始我也犯难,习惯了启动Android和Ios App了,不知道如何启动 winPE了。

frida C:\Users\35085\Desktop\demo\fridawin.exe -l nt.js --no-pause    // spawn 模式
frida *fridawin* -l nt.js   // attach模式


其实都差不多,跨平台工具的好处是,经验可以复用。


三、总结


Windows其实更好玩,只是时代变了,不过就像《神鞭》里说的, 辫子剪了,神留着,一变还是绝活


frida里面的数据类型和各个平台下的类型对应关系要熟练掌握。60.png

朕岂可亲系草鞋之绳


TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号:  奋飞安全,最新技术干货实时推送


相关文章
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
1月前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
82 3
|
1月前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
|
2月前
|
边缘计算 安全 网络安全
|
2月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
2月前
|
网络协议 Windows
Windows Server 2019 DHCP服务器搭建
Windows Server 2019 DHCP服务器搭建
|
2月前
|
网络协议 定位技术 Windows
Windows Server 2019 DNS服务器搭建
Windows Server 2019 DNS服务器搭建
|
2月前
|
安全 网络协议 数据安全/隐私保护
Windows Server 2019 搭建并加入域
Windows Server 2019 搭建并加入域
|
2月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建