Thinstall 包装 Dotnet 程序分析

作者纠正之前文章失误,分享Thinstall包装Dotnet程序原理。看到有人问Dotnet无CLR Header问题后开始分析,用ODBG调试,发现Thinstall自动生成asm、有花指令,最后解压原Assembly并交执行权给mscoree,还说明获取原Assembly的方法。
首先,非常抱歉之前的文章中说 Thinstall 对Dotnet 压缩会生成一个本地的文件,然后再调用.

这是我的失误,一直都以为是这样,今天在 Pediy 上看到有人问,我才光掉点时间去研究了 Thinstall的原理,由于太忙,所以分析的时候没有做笔记,现在把大至的原理给大家讲一讲.希望大家原谅我之前的不负责任. :)

好久没在 Pediy 上转了,今天上去转了转,下了点新版本的调试器和反汇编工具,充实了一下自己的弹药库。然后上论坛转转,看到有人问:“为什么有的Dotnet没有CLR Header?”。

Codelib Resource 是目标程序,我下载下来,用 Ildasm 一看,报错,没有 Clr header。ok。

开始分析。 我习惯使用  ODBG

目标中断在程序入口处。

还好 Thinstall 没有 Anit , 一路跟下去,一开始是自动生成asm,然后是有许多花指令。最后解压原 Assembly ,并将执行权交给 mscoree 执行

他利用了 Mscoree!_CorExeMain 来调用 Dotnet Assembly

因为一个标准的 Dotnet Application 的入口其实都是一段本地代码,即 Mscoree!_CorExeMain

而 Thinstall 把原 Assembly 解压后,存在的位置就是 BaseAddress + 0x2000左右.所以,只需要 dump BaseAddress 手工修复PE文件头,就可以得到原 Assembly,得到 Assembly 后,你可以使用任何反编译工具打开它.

以上是非常简单的说明,由于分析时没有做笔记,所以就不Post过程了.

转载于:https://www.cnblogs.com/Aiasted/archive/2005/11/02/267437.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值