日期:2014-05-19  浏览次数:20736 次

高级.NET底层问题,非专业人士乎进!
这只是我研究中所要解决的问题(没办法,要发文章),当然也可以作为软件分析之用。

问题基于.NET底层,限于C#语言

问题是这样的:

我现在就是要分析一个软件当前内部执行过程的指令对应是否为一个变量(值类型或者应用类型),如果对应的是一个变量,那么此变量对应的类型是什么?(如果是引用变量那么是什么类的实例)此类型对应于那个程序集?

就是要怎样写个工具,打开一个可执行文件(*.exe文件),然后监视此文件的每一个动作,检查他的每一个动作对应的指令。现今可以分析.exe文件的工具大多是静态的,如PE文件分析工具,反汇编工具(ildasm,Reflector),还有IL调试工具。IL调试工具具有一定的动态性,不过要事先断点,当进入调试指令区域后软件界面不能操作,这是所有调试工具必须的特性。所以现今找一种跟踪、分析软件执行过程的软件还没有,很希望.NET底层高手给些建议。谢谢!!!

------解决方案--------------------
你可以自己实现一个基于IL的脚本引擎.
用同样的元数据建立同样的Assembly结构,
然后每个方法的代码转移给脚本引擎来执行.
不过这样仍然会有一些反射上的兼容情况需要处理.

------解决方案--------------------
我不是高手,但我知道.Net离底层太远了。。。

就算你可以用API来操作——似乎如果要达到SoftICE的程度,不现实~~

真的好的底层操作软件,没有几个用的是现成的微软提供的API的~~

//分析的时候并没有源码,我们只能把.exe或者.dll文件反汇编成IL代码。
真够幽默——至今为止,我还没有看到任何一款反编译即时只是.Net程序可以达到编译完就可以保证能正常工作的反编译器,最多不过号称能反编95%以上而已;更别说那些加密的、加壳的。。。

如果你在动态的时候不但可以获取变量、函数入口之类的,还可以断点调试。。。
那这世界上还会有安全的软件么??我可以免费的发短信——因为我用你的程序破译了他的入口。收费的软件会统统变成免费的,Q币更是想要多少有多少。。。。我梦想着那一天。。。
楼主加快开发进度阿
<本人想入非非,纯属胡说八道,呵呵,就算破译了,也有很大难度来获取资源的,不过短信肯定可以免费发了,大多短信平台都是直连数据库,而验证用户合法性的这一步大多很简单>
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================