xujidejia 发表于 2024-6-16 11:39

.net Reactor(6.X)脱壳后,用dnSpy保存无法运行

本帖最后由 xujidejia 于 2024-7-9 11:36 编辑

求助大神们,我在论坛学习.net的程序逆向,发现是用了保护器: .NET Reactor(6.X)

我用NETReactorSlayer解开后,在dnspy中也知道了关键信息,但是保存模块后,运行提示索引超出范围,必须为非负值并小于集合大小,参数名:index,就算是不修改,dnspy保存后也这样,这是没脱干净吗?我在论坛的.net逆向中找了看了很多也不知道,请大神解答下。我把原始文件和脱壳后的文件上传到来了网盘中。

SoftCracker 发表于 2024-6-16 21:59

> 还有更好的脱壳工具推荐吗?
免费的工具就这个最强了

> 但脱完壳是可以运行
保存文件时保留元数据标记就可以运行,你这个文件有60多个函数被虚拟化了,如果你不需要查看和修改这些函数,可以保留元数据勉强用用。
但一般来说虚拟化的函数都是比较重要的函数,不然开发者也不会选择对这些函数进行虚拟化,如果要查看或修改这些函数,就必须要反虚拟化。

SoftCracker 发表于 2024-6-16 19:30

修改后不能运行的原因是NETReactorSlayer不能反虚拟化,例如:

这是NETReactorSlayer生成的结果:


反虚拟化后:


简单地说,NETReactorSlayer脱壳不彻底,只要彻底脱壳了,就可以任意修改

ppszxc 发表于 2024-6-16 11:44

修改前和修改后的图得有吧

xujidejia 发表于 2024-6-16 11:49

ppszxc 发表于 2024-6-16 11:44
修改前和修改后的图得有吧

上面有下载地址,脱壳以后是可以使用的,但是用dnspy不修改保存出来的都不能用

ppszxc 发表于 2024-6-16 12:04

修改了可以保存,换个dnSpy试试吧

xujidejia 发表于 2024-6-16 12:22

ppszxc 发表于 2024-6-16 12:04
修改了可以保存,换个dnSpy试试吧

保存出来的程序,运行就提示运行提示索引超出范围,必须为非负值并小于集合大小,参数名:index

xujidejia 发表于 2024-6-16 12:23

ppszxc 发表于 2024-6-16 12:04
修改了可以保存,换个dnSpy试试吧

就算不修改,直接冲dnspy中保存模块出来都不可以运行,奇怪了

iperseus 发表于 2024-6-16 14:38

艾莉希雅 发表于 2024-6-16 14:39

保存是能保存,不过你就一个dll,能不能运行天知道

xujidejia 发表于 2024-6-16 16:23

艾莉希雅 发表于 2024-6-16 14:39
保存是能保存,不过你就一个dll,能不能运行天知道

https://wwb.lanzn.com/iv4PF21z7zne,这里有其他文件,需要挂载在CAD中运行

xujidejia 发表于 2024-6-16 16:24

ppszxc 发表于 2024-6-16 12:04
修改了可以保存,换个dnSpy试试吧

https://wwb.lanzn.com/iv4PF21z7zne,这里有其他文件,需要挂载在CAD中运行,测试了,不是dnspy的原因,导出来以后就不能运行了,
页: [1] 2 3 4
查看完整版本: .net Reactor(6.X)脱壳后,用dnSpy保存无法运行