本人在win2k使用中出现无法安装软件的问题,请各位帮助解决!谢谢!

uno 2001-03-10 02:09:00
本人使用windows 2000 professional时出现以下情况:
1、运行几乎所有的安装程序时,在进度条“极为缓慢”达到100%并等待较长时间之后,系统报错,大致上分两种——某地址指令引用相同地址数据,此地址不可为read……出错;某地址指令引用0x00000000地址数据,此地址不可为read……出错。
2、Visual Studio 6.0安装过程中(我只装了vb vc vfp interdev,似乎是第1张cd),重启第一次之后,系统报错,大意为——visdata初始化出错——之后运行vb时无法进入可视化数据管理器。
直接重装os覆盖原有系统数据无法解决以上问题,本人已为此删除重装os多次,希望能够得到诸位高手的指教,谢谢!
...全文
113 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
riyueren 2001-03-18
  • 打赏
  • 举报
回复
我的win2000 Advanced Server也出现过这样的问题,不过现在已经解决了!
你在win2000中装文鼎字体了吗?
我在把它们删除后win2000就接受所有软件的加入了!
uno 2001-03-10
  • 打赏
  • 举报
回复
就是老版本的Install Shield制作的安装程序。据我观察,似乎是在安装了那个罗技通用鼠标驱动9点几版本后出现的问题……
suzg 2001-03-10
  • 打赏
  • 举报
回复
我也遇到过

是不是你装了Office2000,好像是它装完后出现的问题(主要是Install Shield制作的安装程序)
特别说明: 本软件谢绝任何支持或使用3721(及及该公司其他产品如雅虎助手等)的人士使用。 multiCCL      by niu-cow in NE365 开发调试环境及工具 : win2k+sp4 dev-cpp 4.992 Lcc_win32 MASM32 v9.0 Radasm ollydbg 1.10 winHex 12.5 包含文档: 1. multiCCL_f.exe 文件特征码专用版 2. multiCCL_m.exe 内存特征码专用版 3. multiCCL_inj.exe 注入代码块内存定位专用版 4. memtest.exe  用作内存定位时加载dll或运行exe或向目标进程注入的辅助程序          (为了防止主程序被杀毒软件Kill,用了远程线程注入) 5. AutoStartScanDll.dll 自动操作模块,使得部分操作自动化 6. multiCCL_readme.txt 本说明文档 7. multiCCL原理图示.htm 基本原理图示 功能: 原来已有的 文件特征码定位功能 (对 PE文件 和 非PE文件)--此功能已较稳定 本版新增功能:内存特征码定位(对PE文件)---------此功能测试 因为现在杀毒软件针对特征码定位器设置了某些干扰,最终决定把文件定位和   内存定位做成两个独立的部分。 其实代码基本一样的,只为方便日后的维护和升级。 ----------------------------------- ......内存定位.重要提示....... 1.定位期间不要浏览任何放有病毒样本的文件夹 以免被杀毒软件的实时监控删掉 2. 现在打开杀毒软件的实时检测(保护级别在自定义设置得严格些) 实时检测的执行动作可设置为: a. 提示用户操作 b. 禁止访问并删除 推荐选 a ,千万不要选“仅禁止访问”,“隔离”也不要选 3. 当然也可以按提示手动扫描内存 执行动作设为“仅报告”或“提示用户操作” 只要杀毒软件报告检测结果就行了,不需要它删除或禁用什么 4. 防火墙不要监视远程线程 因为multiCCL为了避免主程序被杀毒软件kill,用远程线程加载样本   (另外,正在找有关驱动方面的资料) ------------------------------------ ------------------------------------ 现在重点测试内存特征码的定位功能。 通过后再添加。现在的界面也还有点马虎,用cmd界面也是为测试 方便,因为随时都可输出间信息。 ((听 tankaiha 一说还真不想写GUI界面了)) 需要说明的问题是:     1. 开始定位一个样本时,如果发现样本目录存在旧的记录文件,           程序会读取并认可 旧记录的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置任何您想保留的文件,以免给您带来损失。 定位过程将删除里面的一些文件。 另一个简单的做法是:先手动在样本所在目录下建一个名为              output 的子目录,然后在选择目录的对话框点 “取消”,这样输出文件就都放到这个output 目录下了。 3. 设置保护片段时,如果所保护的片段本身是独立的特征码,就会        导致定位失败,因为所生成的文件会全部被杀,而且一直如此。         所以在设置前,          先要确认所保护的片段不是独立的特征码。 v 0.100 beta 之后的版本用的是等分法,限制区域的优化效果, 对于文件特征码来说是很不明显的, 而对于内存特征码的定位还是比较明显的。 ;  要注意的是,文件定位每次提醒杀毒时,一定要把识别出的文件全部删除, 否则程序会判断错误的。(内存定位就没关系了) 记录文件格式: 只要注意以下几个字段和键值就可以了: [CharactorCodz] ;特征码总数 CharactorTotal= ;特征码的记录格式是 H_起始偏移_结束偏移_长度_…… ;一般只要注意 起始偏移 结束偏移 就够了。记录的是文件偏移, ; 用十六进制表示 ;特征码1 Codz1= ;特征码2 Codz2= ;…… ;当OK=1时表示定位成功完成,ok=0表示定位没有完成 ok= ----------- ;文件定位的记录文件是 multiCCL_f_Log.txt ;内存定位的记录文件是 multiCCL_m_Log.txt ;都放在样本文件所在的目录下。 ----------- ;看内存定位结果时,还有一个字段需要注意的: [antiLocateCodz] newCodz=1 OK=1 CharactorTotal= Codz1= Codz2= …… ;这是杀毒软件针对内存定位干扰码,( antiLocateCodz ) ;定位不出内存特征码或修改内存特征码无效时, ;可以考虑修改入口点(修改代码或转移入口点), ;若以上修改还是无效,则试试修改干扰码。 ;---------------------------- ;另外也看看更新记录,里面也有部分说明 ; ; 同时也帮助统计定位一个样本特征码所需的时间,大致记录下就行 ; 结果反馈到: http://vxer.cn/bbs/read.php?fid=9&tid=112&page=1 ;----------------------------------------------- ;统计内容包括: ;-------- ;基本信息: 哪种杀毒软件的XXX文件定位(病毒库版本XXXX) ;1 样本文件大小: ;2 总共定位出特征码片段的数量: ;3 总共需要杀毒软件扫描几次: ;4 定位总用时: ;5 定位结果评价: 基本可用/有较大偏差/很不可靠 ;---------------------------------------------- ;BTW: 本程序针对的目标是杀毒软件的复合特征码的定位,    当然也包括单一特征码了。 ;免责声明:本程序只供学习,不得用于商业。本程序可能存在某些缺陷,       及其他可能隐含的问题,      使用可能造成的一切后果,均由使用者自行负责。 如果您对此很在意则使用。 ;感谢您的测试,使用保留软件文档的完整,发现任何问题到NE365的BBS上反馈。 ;(借用一下NE365的空间 http://vxer.cn/bbs ,一并致谢NE365 ;及各位网友的帮助和测试 ,大家多多支持NE365吧) ; ;特别说明:本软件谢绝任何支持或使用 3721 的人士使用。             niu-cow 2006-05-22 --------------------------------------------- 大致上找到了特征码没完没了的原因了   很可能是因为保护区域设置得过大,其含有相当数量的隐含病毒特征, 导致启发式扫描的极高的实现机率。 实际测试也发现当没有设置保护区域时, 定位出的特征码就很有限。   看来,设置合理的保护区域,对于定位是非常重要的, 尤其是针对“启发式扫描”(NOD32称之为“高级智能侦测模式”)的定位。   尽管以上只是猜测,不过本人认为这下被猜了。 niu-cow 2006-05-31 20:08 ----------------   在tanknight(myCCL的作者)的BLOG上看到NOD32定位的有关讨论,据说定位 精度太高时,对NOD32的定位往往失败。一般控制在8--16字节为宜。   依照这个原理增加了个控制定位精度的模块,重复的现象有所减少,但 问题好象还没有解决。 niu-cow 2006-06-10 17:04 ------------------------------------------------------------------ ======================================================================================== ------------------------------------------------------------------ 更新历史: v 1.200 (当前版本) 1.为文件特征码定位部分增加了模拟鼠标键盘动作的自动操作模块, 这下可以在定位时抽空喝杯开水了(有关说明在模块的设置界面) 建议先手动操作定两三个特征码,之后设置使用自动操作 2.内存定位时exe的加载方式作了改变,这个版本用CREATE_SUSPEND参数 使进程或线程创建时处于挂起状态(类似于被调试器加载,因为 据网友反馈说部分杀毒软件的内存扫描对于OLLYDBG加载的程序 起作用,而对于MYCCL、multiCCL、CCL等的加载不起作用)。 dll的加载没改(因为目前还没找到更好的方法) 注:本版的memtest.exe、memtiCCL_m.exe、multiCCL_inj.exe 和之前的版本均无法兼容,不要混用。 2007-07-17 v 1.150 1.解决了memtest.exe被杀时,主程序的SendMessage无法返回的问题 2.为注入型的提升权限(只有当拥有Administrators以上权限时才起 作用) 这样就可以注入某些系统进程。 注:本版的memtest.exe、memtiCCL_m.exe、multiCCL_inj.exe 和之前的版本均无法兼容,不要混用。 2006-11-29 v 1.140 1.修正了第一次生成Except.txt(用于设置保护区域定位精度等)时, 未能生成完整的模板,导致很多使用者第一次使用时无所适从, 2.将内存定位的一个容易引起误解的“判断……”改为“将判断……” (以上两处BUG感谢网友woaicomputer等的反馈) 3.增加了定位注入数据块的特征码的功能(主要用于对付flux等) 方法是:a 想办法从内存抓取注入的数据块 (这个要自己想办法) b 用multiCCL_inj.exe处理数据块并注入了目标进程, 结合杀毒软件扫描内存,进行判断定位 注:memtest.exe 再次升级,以适用于multiCCL_inj.exe 2006-11-15 v 1.130 (仅针对内存定位模块) 1.改变EXE的加载方式为创建进程(原来用LoadLibrary) 2.增加对保护区域设置的检测,这样加载失败的机率更少      (本版的 multiccl_m.exe 和 memtest.exe 与过去的版本不兼容) 2006-11-5 v 1.120 (仅针对内存定位模块) 因为有的杀毒软件监视远程线程,用注入法要先关闭这个监视 感觉这样有些麻烦,改用发消息让宿主程序主动加载 ( 此版的 multiccl_m.exe 和 memtest.exe 得配合使用了) 2006-10-23 v 1.110 (仅针对内存定位模块) 有网友(无涯)反馈说内存定位时有问题 发现问题的系统是WIN2003 本人在WIN2K+SP4下测试未发现问题 从出错截图看,问题很可能在杀进程的函数 检查源代码,只发现一个进程句柄没有及时关闭,修正了这个函数, 作为试探性修改,看看问题是否解决。 2006-07-14 v 1.100 : 1- 修正了处理干扰码的方式,并在记录用~~作标记,或许有点用。 (注:干扰码也可能是特征码的一部分) 2- 修正了定位头端时的还原方式。 3- 生成文件时增加一秒停顿。 这个版本的两处修正都只是试探性的修改。 2006-07-04 v 1.010 : 仅修正了内存定位的模块,使其生成的文件数更少(定头端时) 这样每轮加载次数最多35次,绝大多数时候是28次 (尾端20次,头端8次) 文件定位仍用v 1.000版 2006-06-20 v 1.000 : 从本版本开始,已经是正式版了~~~~ 1- 记录文件文件名 包含了样本文件名,以有所区别, 感谢pipapi的建议。 2- 增加了一个控制定位精度的功能。 具体是在Except.txt文件改变dwX的值 当dwX=1 时精度为一字节(最高),如果存在旧的Except.txt 则自行增加这个字段,如下(前后都不要有空格): [dwX] dwX=1 降低精度的目的是减少一些干扰(如NOD32的启发式扫描), 经实际测试发现仍然无法完全避免。 (一般降为 12-16 字节左右为宜,dwX的值用十进制) 保护区域设置的合适一些,不要太大才是最重要的。                  2006-06-09 v 0.120 beta: 1- 实际使用发现,杀毒软件的“启发式扫描” (NOD32的称“高级智能侦测模式”的扫描速度实在慢, 为提高效率,减少每次生成文件的数量, 当然多扫一遍了(以 1 MB 计算)。 这样一来,对磁盘空间的需求也减少了一半。不过现在 的硬盘都很大,不会在乎这点的。 此修正针对文件定位(也包括内存定位前的干扰码定位) 2- 提示音作了细小的调整。 2006-05-31 v 0.110 beta: 1- 增加了内存定位功能(二分法),这样每定位一处特征码 最多只需加载64次(其定尾端20次,头端32次) 2- 修正了卸载方式。 3- 彻底屏蔽限制点区能。 4- 文件定位仍使用 v 0.100 beta 版 2006-05-25 v 0.100 beta: 1- 修正了winXP下当软件路径带空格时出错的问题, 感谢 最近的星球 的测试和反馈 2- 改用了等分法(原来用二分法),效率提高明显。           测试过程发现的一个偶然的错误却解决了算法的一个  细节问题,进一步提高了效率(与理论效率相比) 激动ing ,每次最多可能生成64个文件 使用新版本时,把旧版本的记录文件重命名或删除吧, 以免造成潜在的冲突。 3- 增加了定位限制点的功能,就是说只定位限制点之前的部分 且直接从此点开始,   限制点之后的所有数据都将被随机数据串填充。               若需要保护某区数据,与保护区域配合使用。 限制点的格式为 8 位的十六进制值,以表示文件偏移。 且只当标志设为1时起作用,限制标志为0时不起作用。 特别说明: 这个功能只是预留,目前测试表明没什么用处。   目前的版本只有文件定位功能,就不要使用限制点了。 4- 使用新算法的multiCCL版本号从 v 0.100 beta 开始。 目前只有文件定位功能。先测试BUG。 2006-05-22 v 0.017 beta-p: 再次作一小的修正,因为发现和卡巴对0.012版类似干扰, 这次是别的杀毒软件了,也不清楚原理是什么,干脆连 同干扰码一起定位了,这样还省心些。 (以后前面冒出的干扰码就不怕了, 今后的升级只要应付覆盖区冒出的干扰码就行了) 本BUG系astronomer反馈,致谢 2006-05-18 v 0.017 beta : 再次修正随机数据的生成方式,修正的效果有待测试 因为定位NOD32对彩虹桥英文1.02版的文件特征码时 发现有干扰。(感谢yxrx的测试)                 2006-05-18 v 0.016 beta-p: 1-修正一个针对已找出的特征码的覆盖方式, 因为针对ewido定位时,发现特征码不断地“往前长”, 看看更改后能否通过。 (只为只是小的修正,界面上仍标识为 v 0.016 ) 感谢 honhon 的测试和反馈。 2-用LCC_win32+RadAsm重写宿主程序(内存定位用),体积 更小了。                2006-05-16 v 0.016 beta : 1-修正了随机数据串的生成方式 (感谢abc27的针对NOD32的测试) 2=修正了其他已发现的次要的BUG。 2006-05-13 v 0.015 beta : 1-增加了内存定位的功能,为防止加载样本时被杀毒软件关 闭,启动了一个靶程序,用远程线程注入到宿主进程 2-当样本文件所在目录存在旧的记录文件时,程序将读取旧 记录文件所记录的已定位出的特征码,并认可这些特 征码。 新增这个功能主要是考虑到有些杀毒软件的特征码片段 的数量很大,每次从头再来显然太浪费时间了。 尤其是相对烦琐的内存定位,万一途意外断, 丢弃之前的结果从头再来是不可容忍的。 3-修正了一些已发现的BUG(比较次要,不影响使用) 4-针对杀毒软件的干扰做了些应对性的改变。 2006-04-30 v 0.014 beta : 1-改用随机数据串填充,因为发现有的杀毒软件用检测填充 0来反定位(他们动作蛮快的哈) 2-把记录文件放到要定位的样本文件所在的目录下了,因为             考虑到以后杀毒软件可能会检测改写记录文件来反定位,              和输出文件放在一起不妥。 3-修正了一处因优化带来的定位重复造成失败的BUG 感谢frip反馈 4-增加了保护片段(或区域设置),这是为了对付NDD32这类             关联输入表的特征码。(设置方法软件会有提示的) (此功能效果有等测试,感谢111111113提供有关针对NDD32的建议) 因为此版修复和更新相对较大,就跳到0.014 版了,本来想写内存定位的, 不过这两天忙于对付杀毒软件的反定位,内存定位就留到下个版本了。             (其实很想休息几天的,有点累) 2006-04-24 v 0.012 alpha : 1-修正了记录特征码长度多出一个字节的错误。 ( tandaiha发现 ) 2-当发现特征码片段的长度超过32byte时,就取这32位作为片段结果 反正只要篡改片段里的任何一个字节就行,定出这么长就够了, 发现有的杀毒软件的取样片段(如卡巴斯基 vs AngleShell )               的长度有点不可思议,硬要找出片段的头端简直是浪费时间。            所以,在分析定位结果时,特征码片段的尾端一般是精确的,              当片段长度 <32bytes(记录用的是十六进制的20) 时, 头端也是精确的,否则头端可能还在更前面。 反正记录结果对于修改来说,已经够用了。 2006-04-22 v 0.011 alpha : 重新排列了按键及暂停,便操作更简洁 2006-04-21 v 0.010 alpha : 原始版本,算法调试基本通过 2006-04-21
特别说明: 本软件谢绝任何支持或使用3721(及及该公司其他产品如雅虎助手等)的人士使用。 multiCCL      by niu-cow in NE365 开发调试环境及工具 : win2k+sp4 dev-cpp 4.992 Lcc_win32 MASM32 v9.0 Radasm ollydbg 1.10 winHex 12.5 包含文档: 1. multiCCL_f.exe 文件特征码专用版 2. multiCCL_m.exe 内存特征码专用版 3. multiCCL_inj.exe 注入代码块内存定位专用版 4. memtest.exe  用作内存定位时加载dll或运行exe或向目标进程注入的辅助程序          (为了防止主程序被杀毒软件Kill,用了远程线程注入) 5. multiCCL_readme.txt 本说明文档 6. multiCCL原理图示.htm 基本原理图示 功能: 原来已有的 文件特征码定位功能 (对 PE文件 和 非PE文件)--此功能已较稳定 本版新增功能:内存特征码定位(对PE文件)---------此功能测试 因为现在杀毒软件针对特征码定位器设置了某些干扰,最终决定把文件定位和   内存定位做成两个独立的部分。 其实代码基本一样的,只为方便日后的维护和升级。 ----------------------------------- ......内存定位.重要提示....... 1.定位期间不要浏览任何放有病毒样本的文件夹 以免被杀毒软件的实时监控删掉 2. 现在打开杀毒软件的实时检测(保护级别在自定义设置得严格些) 实时检测的执行动作可设置为: a. 提示用户操作 b. 禁止访问并删除 推荐选 a ,千万不要选“仅禁止访问”,“隔离”也不要选 3. 当然也可以按提示手动扫描内存 执行动作设为“仅报告”或“提示用户操作” 只要杀毒软件报告检测结果就行了,不需要它删除或禁用什么 4. 防火墙不要监视远程线程 因为multiCCL为了避免主程序被杀毒软件kill,用远程线程加载样本   (另外,正在找有关驱动方面的资料) ------------------------------------ ------------------------------------ 现在重点测试内存特征码的定位功能。 通过后再添加。现在的界面也还有点马虎,用cmd界面也是为测试 方便,因为随时都可输出间信息。 ((听 tankaiha 一说还真不想写GUI界面了)) 需要说明的问题是:     1. 开始定位一个样本时,如果发现样本目录存在旧的记录文件,           程序会读取并认可 旧记录的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置任何您想保留的文件,以免给您带来损失。 定位过程将删除里面的一些文件。 另一个简单的做法是:先手动在样本所在目录下建一个名为              output 的子目录,然后在选择目录的对话框点 “取消”,这样输出文件就都放到这个output 目录下了。 3. 设置保护片段时,如果所保护的片段本身是独立的特征码,就会        导致定位失败,因为所生成的文件会全部被杀,而且一直如此。         所以在设置前,          先要确认所保护的片段不是独立的特征码。 v 0.100 beta 之后的版本用的是等分法,限制区域的优化效果, 对于文件特征码来说是很不明显的, 而对于内存特征码的定位还是比较明显的。 ;  要注意的是,文件定位每次提醒杀毒时,一定要把识别出的文件全部删除, 否则程序会判断错误的。(内存定位就没关系了) 记录文件格式: 只要注意以下几个字段和键值就可以了: [CharactorCodz] ;特征码总数 CharactorTotal= ;特征码的记录格式是 H_起始偏移_结束偏移_长度_…… ;一般只要注意 起始偏移 结束偏移 就够了。记录的是文件偏移, ; 用十六进制表示 ;特征码1 Codz1= ;特征码2 Codz2= ;…… ;当OK=1时表示定位成功完成,ok=0表示定位没有完成 ok= ----------- ;文件定位的记录文件是 multiCCL_f_Log.txt ;内存定位的记录文件是 multiCCL_m_Log.txt ;都放在样本文件所在的目录下。 ----------- ;看内存定位结果时,还有一个字段需要注意的: [antiLocateCodz] newCodz=1 OK=1 CharactorTotal= Codz1= Codz2= …… ;这是杀毒软件针对内存定位干扰码,( antiLocateCodz ) ;定位不出内存特征码或修改内存特征码无效时, ;可以考虑修改入口点(修改代码或转移入口点), ;若以上修改还是无效,则试试修改干扰码。 ;---------------------------- ;另外也看看更新记录,里面也有部分说明 ; ; 同时也帮助统计定位一个样本特征码所需的时间,大致记录下就行 ; 结果反馈到: http://vxer.cn/bbs/read.php?fid=9&tid=112&page=1 ;----------------------------------------------- ;统计内容包括: ;-------- ;基本信息: 哪种杀毒软件的XXX文件定位(病毒库版本XXXX) ;1 样本文件大小: ;2 总共定位出特征码片段的数量: ;3 总共需要杀毒软件扫描几次: ;4 定位总用时: ;5 定位结果评价: 基本可用/有较大偏差/很不可靠 ;---------------------------------------------- ;BTW: 本程序针对的目标是杀毒软件的复合特征码的定位,    当然也包括单一特征码了。 ;免责声明:本程序只供学习,不得用于商业。本程序可能存在某些缺陷,       及其他可能隐含的问题,      使用可能造成的一切后果,均由使用者自行负责。 如果您对此很在意则使用。 ;感谢您的测试,使用保留软件文档的完整,发现任何问题到NE365的BBS上反馈。 ;(借用一下NE365的空间 http://vxer.cn/bbs ,一并致谢NE365 ;及各位网友的帮助和测试 ,大家多多支持NE365吧) ; ;特别说明:本软件谢绝任何支持或使用 3721 的人士使用。             niu-cow 2006-05-22 --------------------------------------------- 大致上找到了特征码没完没了的原因了   很可能是因为保护区域设置得过大,其含有相当数量的隐含病毒特征, 导致启发式扫描的极高的实现机率。 实际测试也发现当没有设置保护区域时, 定位出的特征码就很有限。   看来,设置合理的保护区域,对于定位是非常重要的, 尤其是针对“启发式扫描”(NOD32称之为“高级智能侦测模式”)的定位。   尽管以上只是猜测,不过本人认为这下被猜了。 niu-cow 2006-05-31 20:08 ----------------   在tanknight(myCCL的作者)的BLOG上看到NOD32定位的有关讨论,据说定位 精度太高时,对NOD32的定位往往失败。一般控制在8--16字节为宜。   依照这个原理增加了个控制定位精度的模块,重复的现象有所减少,但 问题好象还没有解决。 niu-cow 2006-06-10 17:04 ------------------------------------------------------------------ ------------------------------------------------------------------ 更新历史: v 1.150 (当前版本) 1.解决了memtest.exe被杀时,主程序的SendMessage无法返回的问题 2.为注入型的提升权限(只有当拥有Administrators以上权限时才起 作用) 这样就可以注入某些系统进程。 注:本版的memtest.exe、memtiCCL_m.exe、multiCCL_inj.exe 和之前的版本均无法兼容,不要混用。 2006-11-29 v 1.140 1.修正了第一次生成Except.txt(用于设置保护区域定位精度等)时, 未能生成完整的模板,导致很多使用者第一次使用时无所适从, 2.将内存定位的一个容易引起误解的“判断……”改为“将判断……” (以上两处BUG感谢网友woaicomputer等的反馈) 3.增加了定位注入数据块的特征码的功能(主要用于对付flux等) 方法是:a 想办法从内存抓取注入的数据块 (这个要自己想办法) b 用multiCCL_inj.exe处理数据块并注入了目标进程, 结合杀毒软件扫描内存,进行判断定位 注:memtest.exe 再次升级,以适用于multiCCL_inj.exe 2006-11-15 v 1.130 (仅针对内存定位模块) 1.改变EXE的加载方式为创建进程(原来用LoadLibrary) 2.增加对保护区域设置的检测,这样加载失败的机率更少      (本版的 multiccl_m.exe 和 memtest.exe 与过去的版本不兼容) 2006-11-5 v 1.120 (仅针对内存定位模块) 因为有的杀毒软件监视远程线程,用注入法要先关闭这个监视 感觉这样有些麻烦,改用发消息让宿主程序主动加载 ( 此版的 multiccl_m.exe 和 memtest.exe 得配合使用了) 2006-10-23 v 1.110 (仅针对内存定位模块) 有网友(无涯)反馈说内存定位时有问题 发现问题的系统是WIN2003 本人在WIN2K+SP4下测试未发现问题 从出错截图看,问题很可能在杀进程的函数 检查源代码,只发现一个进程句柄没有及时关闭,修正了这个函数, 作为试探性修改,看看问题是否解决。 2006-07-14 v 1.100 : 1- 修正了处理干扰码的方式,并在记录用~~作标记,或许有点用。 (注:干扰码也可能是特征码的一部分) 2- 修正了定位头端时的还原方式。 3- 生成文件时增加一秒停顿。 这个版本的两处修正都只是试探性的修改。 2006-07-04 v 1.010 : 仅修正了内存定位的模块,使其生成的文件数更少(定头端时) 这样每轮加载次数最多35次,绝大多数时候是28次 (尾端20次,头端8次) 文件定位仍用v 1.000版 2006-06-20 v 1.000 : 从本版本开始,已经是正式版了~~~~ 1- 记录文件文件名 包含了样本文件名,以有所区别, 感谢pipapi的建议。 2- 增加了一个控制定位精度的功能。 具体是在Except.txt文件改变dwX的值 当dwX=1 时精度为一字节(最高),如果存在旧的Except.txt 则自行增加这个字段,如下(前后都不要有空格): [dwX] dwX=1 降低精度的目的是减少一些干扰(如NOD32的启发式扫描), 经实际测试发现仍然无法完全避免。 (一般降为 12-16 字节左右为宜,dwX的值用十进制) 保护区域设置的合适一些,不要太大才是最重要的。                  2006-06-09 v 0.120 beta: 1- 实际使用发现,杀毒软件的“启发式扫描” (NOD32的称“高级智能侦测模式”的扫描速度实在慢, 为提高效率,减少每次生成文件的数量, 当然多扫一遍了(以 1 MB 计算)。 这样一来,对磁盘空间的需求也减少了一半。不过现在 的硬盘都很大,不会在乎这点的。 此修正针对文件定位(也包括内存定位前的干扰码定位) 2- 提示音作了细小的调整。 2006-05-31 v 0.110 beta: 1- 增加了内存定位功能(二分法),这样每定位一处特征码 最多只需加载64次(其定尾端20次,头端32次) 2- 修正了卸载方式。 3- 彻底屏蔽限制点区能。 4- 文件定位仍使用 v 0.100 beta 版 2006-05-25 v 0.100 beta: 1- 修正了winXP下当软件路径带空格时出错的问题, 感谢 最近的星球 的测试和反馈 2- 改用了等分法(原来用二分法),效率提高明显。           测试过程发现的一个偶然的错误却解决了算法的一个  细节问题,进一步提高了效率(与理论效率相比) 激动ing ,每次最多可能生成64个文件 使用新版本时,把旧版本的记录文件重命名或删除吧, 以免造成潜在的冲突。 3- 增加了定位限制点的功能,就是说只定位限制点之前的部分 且直接从此点开始,   限制点之后的所有数据都将被随机数据串填充。               若需要保护某区数据,与保护区域配合使用。 限制点的格式为 8 位的十六进制值,以表示文件偏移。 且只当标志设为1时起作用,限制标志为0时不起作用。 特别说明: 这个功能只是预留,目前测试表明没什么用处。   目前的版本只有文件定位功能,就不要使用限制点了。 4- 使用新算法的multiCCL版本号从 v 0.100 beta 开始。 目前只有文件定位功能。先测试BUG。 2006-05-22 v 0.017 beta-p: 再次作一小的修正,因为发现和卡巴对0.012版类似干扰, 这次是别的杀毒软件了,也不清楚原理是什么,干脆连 同干扰码一起定位了,这样还省心些。 (以后前面冒出的干扰码就不怕了, 今后的升级只要应付覆盖区冒出的干扰码就行了) 本BUG系astronomer反馈,致谢 2006-05-18 v 0.017 beta : 再次修正随机数据的生成方式,修正的效果有待测试 因为定位NOD32对彩虹桥英文1.02版的文件特征码时 发现有干扰。(感谢yxrx的测试)                 2006-05-18 v 0.016 beta-p: 1-修正一个针对已找出的特征码的覆盖方式, 因为针对ewido定位时,发现特征码不断地“往前长”, 看看更改后能否通过。 (只为只是小的修正,界面上仍标识为 v 0.016 ) 感谢 honhon 的测试和反馈。 2-用LCC_win32+RadAsm重写宿主程序(内存定位用),体积 更小了。                2006-05-16 v 0.016 beta : 1-修正了随机数据串的生成方式 (感谢abc27的针对NOD32的测试) 2=修正了其他已发现的次要的BUG。 2006-05-13 v 0.015 beta : 1-增加了内存定位的功能,为防止加载样本时被杀毒软件关 闭,启动了一个靶程序,用远程线程注入到宿主进程 2-当样本文件所在目录存在旧的记录文件时,程序将读取旧 记录文件所记录的已定位出的特征码,并认可这些特 征码。 新增这个功能主要是考虑到有些杀毒软件的特征码片段 的数量很大,每次从头再来显然太浪费时间了。 尤其是相对烦琐的内存定位,万一途意外断, 丢弃之前的结果从头再来是不可容忍的。 3-修正了一些已发现的BUG(比较次要,不影响使用) 4-针对杀毒软件的干扰做了些应对性的改变。 2006-04-30 v 0.014 beta : 1-改用随机数据串填充,因为发现有的杀毒软件用检测填充 0来反定位(他们动作蛮快的哈) 2-把记录文件放到要定位的样本文件所在的目录下了,因为             考虑到以后杀毒软件可能会检测改写记录文件来反定位,              和输出文件放在一起不妥。 3-修正了一处因优化带来的定位重复造成失败的BUG 感谢frip反馈 4-增加了保护片段(或区域设置),这是为了对付NDD32这类             关联输入表的特征码。(设置方法软件会有提示的) (此功能效果有等测试,感谢111111113提供有关针对NDD32的建议) 因为此版修复和更新相对较大,就跳到0.014 版了,本来想写内存定位的, 不过这两天忙于对付杀毒软件的反定位,内存定位就留到下个版本了。             (其实很想休息几天的,有点累) 2006-04-24 v 0.012 alpha : 1-修正了记录特征码长度多出一个字节的错误。 ( tandaiha发现 ) 2-当发现特征码片段的长度超过32byte时,就取这32位作为片段结果 反正只要篡改片段里的任何一个字节就行,定出这么长就够了, 发现有的杀毒软件的取样片段(如卡巴斯基 vs AngleShell )               的长度有点不可思议,硬要找出片段的头端简直是浪费时间。            所以,在分析定位结果时,特征码片段的尾端一般是精确的,              当片段长度 <32bytes(记录用的是十六进制的20) 时, 头端也是精确的,否则头端可能还在更前面。 反正记录结果对于修改来说,已经够用了。 2006-04-22 v 0.011 alpha : 重新排列了按键及暂停,便操作更简洁 2006-04-21 v 0.010 alpha : 原始版本,算法调试基本通过 2006-04-21
关键字: QQ界面 换肤 自绘控件 透明窗口 Vista样式 免费开发包 随着计算机技术的发展与普及,计算机逐渐走进了人们的日常生活当。人们通过它来学习,娱乐,信息的交互等等.并且对应需而生的各种各样的软件产品的要求也有了一定的提高。除了基本功能外,对软件易操作性,界面的美观性等也是一个成功软件必不可少的重要因素。美观个性化的界面是一个软件吸引和留住用户的法宝之一,通讯软件QQ/MSN就是这类产品的一个典型的代表,下面将用VC++对QQ的界面进行模拟实现,供广大朋友参考。 相信各位对QQ已经相当熟悉,因此对其外观特性等不作累叙.我们将选用Visual C++来进行进行实现。在这之前,有必要向读者介绍一下大体情况。 其实,整个过程最重要的部分是个性化界面自绘部分,也是难度最大的部分。关于界面编程方面的知识,诚然这是一个较为大的体系结构,我们不能奢求通过简短的篇幅就能对它进行较为全面的描述,并且现在软件开发行业也有缩短开发周期,提高开发效率的趋势,于是将这一难度问题借用外在控件协助我们完成. 关于换肤控件的选择,这里也向大家简单介绍一下,当然这只是个人的观点,仅供参考了解。当前市场提供多个换肤出名的换肤产品(SkinMagic,Skin++,USkin,AppFace,SkinCrafte,等),其SkinMagic,AppFace,USkin等都是做得比较马虎的,界面的某些元素效果做得让人不太满意.而Skin++和SkinCrafte在这方面做得比较出色.客观的说Skin++目前应该说,是国内较为出色的产品,其占用资源消耗比俄国产品SkinCrafte要出色,而俄国产品SkinCrafte在外观性能上做到的效果比Skin++要优秀点,COOL一点. 虽然如此,本实现没有选用以上任何一产品,原因是这里有一个新起之秀SkinBeauty,它无论是性能和外观做出的效果都比较嚣张,更甚的是宣称提供良好的键盘操作支持同时并号称在Win2K和XP等系统可以做出Vista的玻璃磨沙效果。 当然,这些都是所谓的比较结果而已,还有一个选用SkinBeauty的原因是:SkinBeauty可以使用自带的皮肤编辑软件(SkinBeauty Studio)实现一套皮肤包含多种样式的窗口界面,按钮样式等。这是以上任何一个产品暂时似乎都不能提供的。而我们这个项目的需求也有此(主界面,聊天对话框窗口不同,并有多个不同特性的按钮等细节问题)。 经过了前面的简单描述,接下来将开始具体的实现了。先看一下目标效果,如图: 0.准备工作: 用产品相应的皮肤编辑软件SkinBeautyStudio编辑好界面各元素皮肤,一般好看的界面都是由图片绘制所成(这里是到其主站下载已有的BeautyQQ.bsk皮肤)。将下载好的换肤开发库(SkinBeauty.dll,SkinBeauty.lib)和接口文件SkinBeautyExport.h准备好,下载地址在本文章后有给出,或自己到www.afe-soft.com上自己下载。 1.建立项目: 打开VC++,利用向导帮助建立基于MFC的对话框项目BeautyQQ,过程如下 New-> Projects -> MFC AppWizard(exe) -> Dialoag based 其他默认完成建立。简单的修改一下对话框的大小,标题栏名称等,编译一下,如图: , 运行一下基本正常,这就算完成了项目的创建工作了。 2.加载换肤库 做好基本框架后,界面还是很土,运行效果难以让人满意,于是我们接下来可以加载换肤库,初步改变程序的界面外观了。 将先前准备好的skinBeauty.dll库放在项目的运行目录,在项目的目录放入SkinBeautyExport.h文件和SkinBeauty.lib文件,以便稍后引入并调用函数接口。(一般DLL库的调用分成静态调用和程序运行期间动态调用2种,关于这两种的区别,可参考其他文章。这里,我们将选用静态调用的方式实现) 在适当的位置添加引入库的声明,这里我们选择在stdafx.h文件里面添加: //inside stdafx.h //SkinBeauty Lib Call #include "SkinBeautyExport.h" #pragma comment(lib,"SkinBeauty.lib") 在项目得初始化位置(这里选择在项目的创建实例cpp文件里面,BeautyQQ.cpp的CBeautyQQApp::InitInstance()函数的开始,一般都可以在此加载)加入皮肤加载的代码: BOOL CBeautyQQApp::InitInstance() { CString exeFullPath; CString strFilename; int nLen = GetModuleFileName(NULL, exeFullPath,MAX_PATH); CString strPath(exeFullPath); strPath = strPath.Left(strPath.ReverseFind('\\')); strFilename = strPath +_T("\\beautyQQ.bsk"); SkinLoad(THCAR2char(strFilename.GetBuffer(0))); ….. } 从上面可知,我们先用GetModuleFileName()获取加载皮肤的路径,然后调用提供的函数接口SkinLoad()实现换肤库的加载。而SkinLoad()函数的参数也比较容易理解,就是皮肤所谓位置的路径。它的原型可以在头文件找到: //load the skin with a skin-file from a path. //[IN]:absolute file path BOOL SkinLoad(char* szSkinPath); 至此,已经完成换肤库的加载了。运行看看效果是不是眩了很多,呵呵。 顺便说一下的是,官方声称,调用完SkinLoad()载入后,在退出程序前并不需要调用任何卸载函数,换肤引擎将自动实现库的销毁拆装等操作,除非你程序运行途意愿性的想去掉皮肤外观。 现在已经完成QQ主界面的外观实现与美化了,接下来我们通过VC向导添加一个对话框资源并添加相应的类,命名CtalkDlg类,其功能是聊天对话框的对话窗口,也就是当我们双击用户列表的其一个用户后弹出的聊天窗口.当我们运行的时候发现,它的窗口背景外观除了大小外,其它跟主界面是完全一样的, 怎么办呢?没有关系,因为在皮肤文件里面已经编辑和准备好另一外观的窗口皮肤资源,我们只需要将这个聊天对话框创建后跟这个皮肤资源绑定则可,重载这个CtalkDlg类的初始化函数,并添加绑定代码,具体实现如下: BOOL CTalkDlg::OnInitDialog() { CDialog::OnInitDialog(); //将该对话框绑定某资源ID,让其绘制根据该资源定义来实现 //bind with the predefine res BindRes2CtrlbyHWND(103,m_hWnd); ……. } 上述代码功能是将预先在beautyQQ.bak皮肤里面定义好的对话框图像资源与对话框绑定,资源内部ID号为103(注意,该资源编号是编辑皮肤的时候就是由用户定义的,一般从101开始)。从上面的BindRes2CtrlbyHWND()函数名称以及参数可知道,功能是将窗口句柄为m_hWnd的窗口外观与资源Id为103的皮肤资源绑定.于是,这就实现了不同窗口可以显示不同的背景皮肤了。 跟这个功能相类似的是,我们聊天对话框有好几个按钮,它们拥有不一样的外观,按理也应该绑定指定需要的外观皮肤资源,于是,我们可以采用以下函数接口实现: BindRes2CtrlbyID(106,IDC_BUTTON_TALK_SERACH); 以上语句是将皮肤资源ID为106的皮肤跟程序资源ID为IDC_BUTTON_TALK_SERACH的搜索按钮相绑定,该函数接口可以在程序运行前面预先将某控件与指定的皮肤资源相绑定,提供的是控件资源ID与皮肤资源ID。当然也可以用句柄的方式绑定,跟前面的BindRes2CtrlbyHWND()不同的是,大多数对话框窗口在运行期间没有固定的控件资源ID的概念(不象button,edit等控件),所以只能使用实时句柄HWND的形式进行绑定。前面两个资源绑定函数的原型在SkinBeautyExport.h头文件里面可以找到,如下: //bind a skin_resource with a Ctrl by Ctrl ID or by handle //[IN]:user resource define in the skin-file; the ID/handle of Ctrl to be set void BindRes2CtrlbyID(int nUserResID,DWORD dwCtrlID); BOOL BindRes2CtrlbyHWND(int nUserResID,HWND hWnd); 好,经过上面的描述后,对照附件的源码,对于QQ的菜单,用户列表等实现已经不是那么困难了,用户只需象正常的菜单和ListCtrl那样使用就可以了,运行的时候换肤库自动会将他们的外观美化起来。读者可下载源码,看它是怎么绑定实现的。 基本整个复杂而超眩的项目就在完成向导创建后调用两到三个第三方接口函数完成。坦白说,整个换肤开发包提供的接口函数相当简练,就10多个,功能与使用方法亦是相当明了,相信无需多研究就知道如何使用;如果对这几个接口函数有什么疑问,可以参考官方提供的开发文档说明书。 其实上面的例子跟商家提供的源码类似,只是本人将其实现过程解释出来而已,希望对做界面的朋友有参考作用。开始我是对使用商家界面换肤产品的行为比较反感,后来发现效果和效率还凑和,就算了,并在商家的鼓励下写了篇文章帮他们介绍给读者认知,换取了一个企业版本的开发包。算是“个人利益跟群众利益结合”吧,的确不错的,大家可以测试。不过我想对国内某些用户不太满意的是,目前SkinBeauty的使用文档是英文著写的,暂时没有文版本,这对部分不动E文的朋友有点不方便罢了。 搞界面开发的,建议多下载几个换肤产品看看其性能,如资源占用,做到的效果,键盘操作性等。 结语 在尤为强调效率的时代,不妨考虑使用可信赖的第三方控件,将繁杂而固化的实现扔给它们来处理,深入产品功能业务,站在别人的肩膀上,再优化自身,从而走得更高更远。 使用换肤开发包SkinBeauty开发商主页:www.afe-soft.com 开发包(免费版本)下载地址: http://www.afe-soft.com/downloadcenter.htm 开发文档下载地址: http://www.afe-soft.com/downloadcenter.htm (免费版本是无Logo,无弹出窗口限制的,这点可以给部分做共享的朋友点方便了,估计,当然,如果要性能好,不完全受限还是需要获取企业版本了..天下没有免费的午餐,天下乌鸦一般黑?…呵呵,还是不损得太厉害了) 界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 开发包 免费 破解 button dialog frame XP 下载 自绘按钮 菜单 标题栏 滚动条 listctrl treeview listview scrollbar menu QQ界面 软件 程序 界面 编程
Delphi编程大师2003 还有各类控件400多个.也有Delphi教学文章及书籍25个.和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程得到不同的启发与参考. 本软件含有: BorlandDelphi7.06文版 BorlandDelphi6文版 BorlandDelphi5文版 控件控件大全: DBISAM 3.07 SkinForm 界面控件 FlatStyle 文件备份 BackFile XP菜单 XPMenu DosMove RainXP XP Bar Menu 窗口停泊组件 RxLib2.75 nBdeDBF AVL平衡树控件包 常用数据结构控件包(+源码+测试程序) SourceEdit DevExpress For Delphi6&7 Inforpower 4000.E FlatStyle 平面界面控件 ehlib25 Devexpress DBTree 1.3 1 FS 序列号大全 FrmConv 1.0 PrintManager 1.0 超链接拖放 Delphi Project Launcher 1.3 Gifform For Delphi 1.1 1stClass for Delphi 6 3000.01 RegTool控件 1.0 Delphi 6.0 汉化资源包 繁简转换原码 WjTable Miniprint Miniprint_tryversion Spcomm Menubar mssql bitdbgrid exp aexcel aliased doci ln hgdbfilter kbmmemtab VclZip 2.23版本 一个极酷的TreeView控件,多种视觉效果.推荐 对于字符串进行DES加密的控件 在Delphi制作扑克牌游戏的控件 eXperience dxPack12(一组dotNet控件) 界面控件ThemeEngine 3.2 界面控件Skinengine3.2.0 内存表控件 kbmMemTable TGifImage For D7 经本人修改过的XpMenu,真正xp效果 可支持窗体停靠的控件 Modem拨号构件 一个用于Ini文件控制的控件 DBPanel 一个支持多种图形格式的控件 Modem拨号控制控件 一个可以实现颜色渐变效果的label控件 TEasySize Skinengine 3.1.2 ADOTable TTransitionEffect 一个可以以动画方式显示Hint的控件 一个能够旋转显示其内的图像的Image控件 Gifimage For Delphi6 Richview1.4.2 SakEmail控件3.4.3版本 利用Windows Socket API抓取网络上的网页的控件 系统信息控件 一个不错的RAS构件 最新版本的gifimage glad控件包for d5 拥有七种不同外观的改良版TCheckBox构件 平滑特效字体控件包 V2.2 用Xcl代替Delphi的Vcl控件 能够嵌入TButton或TComboBox的TStringGrid控件 能够以回转的形式带出欲显示Form的控件 具有渐层色彩为背景之改良版TLabel构件 模拟大型电子广告牌的控件 VDF-Tools系列控件 能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的TQuickRTTI控件 制作 Microsoft ISAPI Extention 应用程序的构件 控制ISDN拨号的控件 AGHOTKEYMGR 针对 UDP 通讯协议的 Socket 构件 能够更改 TForm.Cpation 显示字体的非可视构件 改良版的 TTimer 构件 利用 MODEM 提供拨号功能的非可视构件 加强版 TTimer 构件 TCommStatus串行状态控件 一个具备 FTP 功能的构件 目前为止效果最好的mp3播放控件组 非常COOL的能够做出WIN2K般的效果动感界面控件 很cool的grid控件 换肤功能控件 自动缩放数据表格 V1.0 平滑字体控件包 V1.1 应用程序病毒免疫控件 V1.21 以可视鼠标拖放的方式产生 SQL 语句的可视构件 UCCOMP AExcel组件 模拟音响设备纵向彩色LED指示表的控件 类似音响设备立体旋钮构件 TRANSPARENT PRNTRAID TMnet 能够解析编辑MP3文件的Tag的非可视构件 一个TextToSpeech(TTS)控件 一个报表控件 自缩放数据表格 TAutoDBGrid V1.0 应用程序病毒免疫控件 SelfAV V1.1 For Delphi 平滑字体控件包 V1.1Beta gifimage最新版本 MS的语音生成(TTS)的Delphi单元 功能全面的报表快速生成构件库 TTommHtmlLabel 存取和控制硬件的控件Tvichw32 能够让 TForm 构件产生半透明效果的非可视构件 GraphicEx87 最棒的Internet编程构件 Microsoft Office 97样式TComboBox 构件 JBS 系列的构件套件 ARC系列套件1.0.3 版 TBurner TDosMove Shell Control Pack VCL v1.5 TCadComboBox outlplus BUPack Component Package v1.4 Directx游戏制作开发包DGCBETA6的十七个例子 Directx游戏制作开发包DGCBETA6 DRIVEDIR TDsFancyButton CGI Expert Components Release 5.0.6 RaLib 1.00 TDsPanel TColorPageControl 超级国式报表控件(printdbgrid)示例 TOutlook Button 1.0 TPageSetupDialog TStolliFullScreen TSpeedbtn.zip ALEXISRIOS fre AMDCPACK .......................

6,868

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧