-
-
[未解决,已结帖]
DNSpy调试C Sharp代码时,如何进入内存中DLL文件中的导出函数
300.00雪花
-
发表于:
2021-8-29 13:38
4871
-
[未解决,已结帖] DNSpy调试C Sharp代码时,如何进入内存中DLL文件中的导出函数
300.00雪花
各位大佬好,最近在分析一个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无法参与调试是怎么回事。
找不到是什么原因,哪位大佬知道原因,这种情况应该怎么调试,帮帮小弟。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)