逆向实战7-调试powershell程序从托管代码到非托管代码
2023-12-26 11:6:31 Author: 安全狗的自我修养(查看原文) 阅读量:4 收藏

目录导航

1.powershell32查看pe信息

2.找powershell的main入口

3.运行与附加调用powershell

4.powershell查看托管命令定义模块  

5.启动进程的命令定义 

6.下断启动命令函数与参数分析 

7.逆向分析底层代码

8.分析从托管代码执行回非托管代码



 

在当前系统上找到powershell32位程序。可以看到powershell是C++编写的PE,但是powershell却能实现托管代码的调用执行。

将powershell.exe拖入ida中加载符号。点击export窗口来到EntryPoint

因为是VS2017编译的找到exit前一个call一般就是main函数

main函数如下

向下查看伪代码来到一个名为LaunchManagedMonad的函数处

进入函数看到CorBindToRuntimeEx函数

  该函数用于将CLR运行时dll加载到非.net程序中,有了clr.dll程序就可以调用.net等程序接口的能力

Dnspy一般可以满足这种调试需求,我们首先启动一个powershell程序

使用Dnspy的附加功能附加到powershell进程


文章来源: http://mp.weixin.qq.com/s?__biz=MzkwOTE5MDY5NA==&mid=2247490869&idx=1&sn=07db8bf197550f78ff2ed8884d6cf5ea&chksm=c07ca089119f85b15ef7806865d497fe933e1b2f958e3d11a030143eee50e01183a081507617&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh