逆向实战7-调试powershell程序从托管代码到非托管代码

admin 2023年12月26日13:18:54评论19 views字数 616阅读2分3秒阅读模式

目录导航

1.powershell32查看pe信息

2.找powershell的main入口

3.运行与附加调用powershell

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

5.启动进程的命令定义 

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

7.逆向分析底层代码

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



逆向实战7-调试powershell程序从托管代码到非托管代码



逆向实战7-调试powershell程序从托管代码到非托管代码

 

 

逆向实战7-调试powershell程序从托管代码到非托管代码



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

逆向实战7-调试powershell程序从托管代码到非托管代码

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

逆向实战7-调试powershell程序从托管代码到非托管代码

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

逆向实战7-调试powershell程序从托管代码到非托管代码

main函数如下

逆向实战7-调试powershell程序从托管代码到非托管代码

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

逆向实战7-调试powershell程序从托管代码到非托管代码

进入函数看到CorBindToRuntimeEx函数

逆向实战7-调试powershell程序从托管代码到非托管代码

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

逆向实战7-调试powershell程序从托管代码到非托管代码

如何调试从托管的.net程序到非托管程序

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

逆向实战7-调试powershell程序从托管代码到非托管代码

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

逆向实战7-调试powershell程序从托管代码到非托管代码

原文始发于微信公众号(安全狗的自我修养):逆向实战7-调试powershell程序从托管代码到非托管代码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月26日13:18:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   逆向实战7-调试powershell程序从托管代码到非托管代码http://cn-sec.com/archives/2335259.html

发表评论

匿名网友 填写信息