首页
社区
课程
招聘
[讨论].NET Profiling API
发表于: 2009-1-17 15:22 7994

[讨论].NET Profiling API

2009-1-17 15:22
7994
<<微软.NET程序的加密与解密>>中的第十二章中的非托管API,我研究了很多次,而且看了实验了例程,对于prifile.dll动态内存补丁还是没有搞懂.

好象演示的文件都是在命令行模式下运行的,profile.dll 似乎不能监视我的.net windows XP程序的事件,而且没有output.log文件产生,请问大鸟们,profile.dll如何记录非控制台.net程序的事件(资源管理器中运行的程序).

http://bbs.pediy.com/showthread.php?t=31402中的例子也是命令行中运行的,请问如何对windows XP管理器中运行的程序打内存补丁呢

对于prifiling API大家讨论的很少,其实现在的.net程序可以用profile API动态内存补丁高效省事(现在anti profiler在.NET中应用不是很多见),因为.net在运行时用JIT动态分配内存和转换成本机机器码,更难用其他内存补丁.直接更改exe/dll又因为又强名称和CRC32检校,也行不通.
对于我的看法,各位有何看法.

感谢

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 5275
活跃值: (496)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
2
Profiling API更多用于在开发和测试中分析程序性能,找出瓶颈和问题,用在动态内存补丁中的实战性一般。

内存补丁的话,本地loader后修改内存也挺直接的。

Profiler.dll不能记录你运行的.net窗口程序一般有两个原因:一是你没有设置相关变量和注册profiler(而从命令行运行该程序就是做了这个工作,或者你自己写一个窗口的Loader做这些工作),二是有anti。

仅供参考。
2009-1-17 17:45
0
雪    币: 201
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请问楼上:
1.本地Loader是否是内存补丁,我试过好机款工具,但没有成功内存补丁.loader工具要加载我的exe软件,等将动态连接库调入内存(我想补丁的就是在DLL文件中),然后Loader要有个中断,再搜索内存中的字节,修改,取消断点,让软件继续运行.请问这个工具软件是否有软件下载,名称?
2.我照着您的书中12.6的内容和例子,在命令提示符运行例子,完全可以,但我的DotNET程序就不行,程序中也没有Anti profiler,请教是否需要更改您的例子中profiler.dll才能跟踪我的.NET程序?

感谢指导
2009-1-18 11:19
0
雪    币: 5275
活跃值: (496)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
4
1,好像没有现成的软件,win32下可能有,你在坛里搜搜。自己写可以。中断的话,就取在compileMethod,判断是否是你需要的那个method,如果是,就修改IL。
2,可能是.net版本问题,或是兼容性,这个我就不太清楚了。(你可以下载该程序的官方版,未经我修改的,进行测试,地址:707K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3#2A6j5%4u0G2M7$3!0X3N6q4)9J5k6h3y4G2L8g2)9J5c8X3c8G2N6$3&6D9L8$3q4V1M7#2)9J5c8X3c8W2N6r3q4A6L8s2y4Q4x3X3g2S2M7%4m8^5i4K6y4r3c8X3q4E0K9h3I4&6d9f1c8Q4x3@1c8S2x3K6j5J5y4K6R3I4j5#2)9J5k6o6x3^5y4K6m8Q4x3X3b7@1x3$3u0W2i4K6u0V1z5o6V1J5y4W2)9J5k6o6R3$3x3X3t1@1x3r3q4S2x3r3y4V1x3q4)9J5y4V1c8A6M7%4m8D9j5i4W2x3j5h3&6Y4i4K6y4p5k6h3^5`.
2009-1-18 13:29
0
雪    币: 201
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢tankaiha,您是否有空写profile API或者是.NET内存动态补丁(修改IL码)的文章,我很想拜读您的大作.您的书写得非常好,对我这种新手指导意义大.付费的文章也行.因为很少有详细的资料谈到这个方面的.
http://bbs.pediy.com/showthread.php?t=30940
http://bbs.pediy.com/showthread.php?t=31032
http://bbs.pediy.com/showthread.php?t=31402

这三篇好象是对命令提示符中运行得dotNET,没有谈到如何在资源管理器中运行的.NET使用内存补丁,希望的到您的指点.谢谢
2009-1-19 18:52
0
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
compileMethod 在 mscorjit.dll mscoree.dll mscorwks.dll 中都找不到,我的。net framework 是 Version 2.0.50727.1433
2009-2-9 18:57
0
游客
登录 | 注册 方可回帖
返回