大悟还俗

邮箱 key_ok@qq.com 我的收集 http://pan.baidu.com/share/home?uk=1177427271
  新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年1月6日

摘要: { Delphi遍历进程中所有Class的TypeInfo,即便是在implementation中的class或者其他 class的private的子class. 一般普通EXE中的TypeInfo存放在PAGE_EXECUTE_*的内存中,而BPL则存放在PAGE_READ_WRITE的内存中. 所以我们要做的是遍历可执内存的内存片,然后找出TypeInfo的特征. 这里我是只找Class的类型信息,特征是tkClass,classname合法, 沿着typedata中的ParentInfo往前追溯,直到找到TObject的类型信息. 那么认为这是个合法的class的Typ... 阅读全文

posted @ 2014-01-06 00:52 大悟还俗_2 阅读(1041) 评论(0) 推荐(0) 编辑

摘要: http://blog.csdn.net/delphiteacher?viewmode=contentshttp://www.raysoftware.cn/ 阅读全文

posted @ 2014-01-06 00:31 大悟还俗_2 阅读(232) 评论(0) 推荐(0) 编辑

摘要: 有个需求是把一个DLL作为数据打包到EXE中,运行的时候动态加载.但要求不是释放出来生成DLL文件加载.花了一天时间做出来.效果还可以.不过由于是直接分配内存加载DLL的.有一些小缺陷.例如遍历进程中加载的模块的时候是找不到这个DLL的.GetModuleXXXX之类的API也就不能用了.当然也可以Hook这些函数做处理.不过便利不到这个模块也未必不是一个优点.例如写木马黑客之类的代码的时候,可以作为隐藏模块的手段.先分析一下Windows系统加载PE文件时候的步骤吧.可以简单的理解为如下步骤:1.读入文件(利用文件镜像)2.如果是加载的位置和PE头规定的镜像基址不一致(通常是DLL),并且有 阅读全文

posted @ 2014-01-06 00:25 大悟还俗_2 阅读(533) 评论(0) 推荐(0) 编辑

摘要: 以后尽量用Delphi/C++双代码写.GetTickCount返回值是整数,这样的话最多49天多就会复位重新从0开始.Vista以后提供了GetTickCount64这个函数,但是WindowsXP还是主流.在项目中为了处理这个,自己实现了一套办法.这个GetTickCount和真正的额GetTickCount相比会恒定的相差800毫秒左右.不过这个不影响使用.获取开机时间这800毫秒完全可以忽略.计算时间差的话就和GetTickCount是一样的了. Delphi版XE下编译通过. type _SYSTEM_INFORMATION_CLASS = ( SystemBasicIn... 阅读全文

posted @ 2014-01-06 00:15 大悟还俗_2 阅读(1976) 评论(0) 推荐(0) 编辑

摘要: 一个灵巧的Delphi多播实现方案.必须是支持泛型的Delphi版本.也就是Delphi2009以后.强烈建议用DelphiXE. 用法就是例如写一个Class指定一个Event,触发的时候会通知多个Method.和.NET的多播事件机制是一样的. 用法例如:type TFakeButton = class(TButton) private FMultiCast_OnClik : TMulticastEvent; public constructor Create(AOwnder : TComponent);override; destructor Dest... 阅读全文

posted @ 2014-01-06 00:11 大悟还俗_2 阅读(587) 评论(0) 推荐(0) 编辑