为什么VMProtect1.22加壳后,还是没有效果?

life923 2011-03-26 11:33:18
我看网上的例子,加壳记事本,用peid看后,显示"什么都没找到"

但是 原来加壳 我的delphi程序,,用peid看后 还是delphi, 跟源文件一样 没有加壳


为什么呢?


我都是加打开后定位的第一个地址
...全文
307 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keeley20 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 life923 的回复:]



我已经加了8个地址 都是 jnz,call ,有中文名称的地址 复制->添加地址

为什么编译后 还是没有效果呢? 还是没有加壳....
[/Quote]
只要加密成功,没有提示出错,加密后的地址肯定是被处理了的,程序的入口可能不会变,但你用Ollydbg

去对比下加密前后,肯定是不同的。

“请问1.1或者1.2 加壳后,peid显示EP段:.vmp1 还是 .vmp2 呢?”VMP1,VMP2等都只是区段名

是可以自己修改的,并不是区段名是VMP1或VMP2 250安全卫士就不杀。根据我的认识,只要是加密壳或者说

保护壳,250安全卫士还有其他杀软没有不杀的,现在没杀,被杀也是迟早的事情。
life923 2011-03-27
  • 打赏
  • 举报
回复


我已经加了8个地址 都是 jnz,call ,有中文名称的地址 复制->添加地址

为什么编译后 还是没有效果呢? 还是没有加壳....

life923 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeley20 的回复:]

在dump标签中选择 Select all


[/Quote]

为什么我在dump标签中选择 Select all

然后在左边窗口,右键->复制地址 然后编译 会提示 "跳转在命令部分"

最主要是 我不知道加密哪个地址

随便一个地址,编译后 又没有效果 ,多几个地址 还提示 错误
life923 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeley20 的回复:]
[/Quote]
请问1.1或者1.2 加壳后,peid显示EP段:.vmp1 还是 .vmp2 呢?

因为我用VMP2.0以上 加壳程序 ,程序有开机启动的 都被360提示 红色清除

但我看别人加壳的程序.vmp1 的, 有开机启动 360也不会提示清除


所以 我想找个 加壳后显示.vmp1的, 所以找了VMP1.2 来加壳
life923 2011-03-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 keeley20 的回复:]
[/Quote]

有Ollydbg打开是有点效果,就是中文名称没了,



VMP1或VMP2
是因为: 估计VMP1 版本低 360可以脱壳 就不会提示,
VMP2 360 脱壳不了 就提示

软件本身是没毒的
keeley20 2011-03-26
  • 打赏
  • 举报
回复
翻了下硬盘,居然没有1.22版本,老版本的只有1.1,不过使用方法都差不多。



在上图中添加需要保护的地方,我的例子是0040A310


在dump标签中选择 Select all


然后开始保护,你用Olldydbg就可以看到0040A310这个保护了的地址和原始的有什么不同。

VMProtect 初期版本貌似只能保护指定函数位置,后面的版本可以VM入口点,而且具有压缩功能。

VMProtect是我个人最看好,技术含量最高的壳,自己写的算法用VMProtect的SDK保护起来,想分析还是绝对有难度的。
不少软件作者为选择一款合适的加密软件而困惑。建议作者不要太依赖壳的保护,大多数壳是可以被攻破的,还是在自身保护上下些功夫。选择壳的时候,更多的时候考虑其兼容性。 目前流行的一些壳可以参考一下这里:http://www.pediy.com/tools/packers.htm 现在壳的发展一个趋势就是虚拟机保护,利用虚拟机保护后,能大大提高强度,因此建议尽可能使用此类技术保护软件。如Themida ,WinLicense,EXECryptor等带有虚拟机保护功能,因此得用好其SDK。 另外,VMProtect是一款纯虚拟机保护软件,效果很好,但也有缺点,就是会影响程序速度,因此在一些对速度要求很高的场合就不适合用了。VMProtect 1.22.3之前是免费版,可以支持EXE,DLL等文件。更高版本需要购买,其支持驱动的保护。现在流行的做法,先用VMProtect将你的核心代码处理一下,再选用一款兼容性好的壳保护。 1.关键代码自己定位 VMProtect并不像其他加壳软件一样容易操作,必须告诉VMProtect你要加密的代码具体地址,这个对使用者有一定的要求,至少要有些解密基础。 在这以一个记事本程序为例来演示一下使用方法。 运行VMProtect后,打开NOTEPAD.EXE文件。单击Dump标签,输入要加密的起始地址,光标来到要加密代码起始地址后,点击菜单“project/new procedure”,会出现一个新的项目 需要处理其他地址时,请依次操作。 注意事项: 1.用VMProtect处理,请多测试,如果不稳定,请调整被保护代码的范围。 2.VMProtect对双线程支持不是太好,请同一次仅处理一个线程内的代码 2.用SDK标记代码 VMProtect v1.2以上支持SDK了,可以编程时插入一个标记,然后在加密时,VMProtect会认出这些标记,并在有标记的地方进行保护。编译后,VMProtect打开生成的这个exe文件后,点击“Project”菜单下的“New procedure”,在弹出的对话框中有SDK中的地址。 Delphi 中的标记模式 引用: asm db $EB,$10,'VMProtect begin',0 //标记开始处. end; //想保护的程序代码 asm db $EB,$0E,'VMProtect end',0 //标记结束处. end; VC的VMProtect的宏 : 引用: #define VMBEGIN __asm //标记开始处. { _emit 0xEB _emit 0x10 _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x62 _emit 0x65 _emit 0x67 _emit 0x69 _emit 0x6E _emit 0x00 } //想保护的程序代码 #define VMEND __asm //标记结束处. { _emit 0xEB _emit 0x0E _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x65 _emit 0x6E _emit 0x64 _emit 0x00 }

9,513

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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