首页
社区
课程
招聘
[未解决,已结帖] DNSpy调试C Sharp代码时,如何进入内存中DLL文件中的导出函数 300.00雪花
发表于: 2021-8-29 13:38 4823

[未解决,已结帖] DNSpy调试C Sharp代码时,如何进入内存中DLL文件中的导出函数 300.00雪花

2021-8-29 13:38
4823

各位大佬好,最近在分析一个C#的样本,遇到调试的问题,想请教各位。
样本行为:
1、内存解密一个C#写成的DLL文件,并调用其中的导出函数。
2、调用代码如下


3、继续F11进入Activator.CreateInstance()函数,后续函数调用步骤如下:
runtimeType.CreateInstanceImpl()
((ConstructorInfo)methodBase).Invoke(bindingAttr, binder, args, culture)
RuntimeMethodHandle.InvokeMethod(null, array, signature, true)
MarshalByRefObject IsCurrentContextOK()
在IsCurrentContextOK()函数中有2条代码:
{
marshalByRefObject = proxyAttribute.CreateInstanceInternal(serverType);
return marshalByRefObject;
}
return marshalByRefObject时程序在运行,DNSpy调试器不能再调试程序。

 

在之前分析过的调用C#DLL文件中的导出函数会跟踪到RuntimeMethodHandle.InvokeMethod(obj,null,this.signature,false)再F11就可以进入到DLL中导出函数中调试,DNSpy可以继续调试。
但这次的InvokeMethod()函数参数不同,F11怎么会进入到IsCurrentContextOK()函数,而且后续调试DNSpy无法参与调试是怎么回事。

 

找不到是什么原因,哪位大佬知道原因,这种情况应该怎么调试,帮帮小弟。


[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 19
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2021-8-29 19:59
0
雪    币: 3622
活跃值: (2559)
能力值: ( LV6,RANK:83 )
在线值:
发帖
回帖
粉丝
3
liqingjia https://s.threatbook.cn/report/file/468008f5f4996c03b06d6e74a95469acee7a352f8d6bb5e718d86707da7c7c0a ...
程序能上传看看?
2021-8-30 00:10
0
雪    币: 19
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
留言上面的地址,微步上面也可以下载。MD5:632EBC5EA90F2312E61135AE6D1CD300
2021-8-30 07:20
0
雪    币: 19
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

样本

上传的附件:
2021-8-30 07:23
0
游客
登录 | 注册 方可回帖
返回
//