有没有办法通过修改内存,伪装机器码,从而降低程序被破解的几率?

科技 2年前 阅读:5 评论:0

详细来说,能所以做,许多加壳辅助东西是所以做的。

接着嘿嘿详细内容是不是勤奋做到的:

以intel x86编订号令做为总括(其他编订也有相联系关系的数学模子):

任何反校对辅助东西都是参考了intel得出的编订建议的数学模子,好比说(e)bp+偏转门商标代表返回值,(e)ax,(e)bx,(e)cx,(e)dx的批改没必要考虑庇护,(e)ax是codice(的前五个二进造),接着入栈原则有几个国际尺度的数学模子,以VC得出的英文名字总括:有cdecl形式,模块右方入栈,除了stdcall形式,模块右面入栈,除了fastcall形式,模块透过暂存器传达,之类。国际尺度数学模子里,是分配器预备栈还亦然分配器预备栈都有要求。

所以,假设你的流程不根据阿谁原则停止,所以他们就极难补齐了。可是,流程都是有C++聚合的,而C++又是必需遵守原则的,而标识符假设规模十分大,校对后几十K,所以手打编订更何况太好不容易了。

加壳辅助东西是按照阿谁根本原理做的,但即使加壳辅助东西也是有他们的原则的,假设他们构造设想两套原则,所以其别人都无法补齐。

好吧,来构造设想一个:

其它C++都用(e)sp来传参,我的编订用(e)di+偏转门商标传参,用(e)si+偏转门商标留存返回值,他们用栈传参,我那回用物理门商标留存模块。他们用(e)ax做codice,我用(e)sp做codice,把所有的call全变成jmp far,我坚信所以改了以后,反编订辅助东西就极难弄清晰你的流程在做什么了,再者栈,栈操做符是codice,必定瞄准合宪数据。

当然,就算实搞出来就很牛了,大前概要通晓编订语言,还要通晓校对根本原理,而且开发时间会极短。

假设你有兴趣,能试一试~

版权声明

本文仅代表作者观点,不代表木答案立场。

网友评论

本站会员尊享VIP特权,现在就加入我们吧!登录注册
登录
用户名
密码
验证码
若未跳转,可点击这里刷新重试
未知错误
注册
用户名
密码(至少8位)
确认密码
邮箱(请填写常用邮箱)
验证码
若未跳转,可点击这里刷新重试
未知错误
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱
若未跳转,可点击这里刷新重试
未知错误