c语言编写网络安全工具,Linux系统下C语言编程工具详细介绍

今天难得被我在学校机房蹭到了机器,装了诺顿和麦咖啡。反正还没针对这两个杀毒软件做过免杀,所以干脆就改一下好了。

定位过程就免了,给出特征码位置:

诺顿的:起始偏移 000B9A4D   偏移大小 00000007

麦咖啡:只要修改000B28B8处就可完成免杀

先生成一个服务端,接下来用C32ASM打开(用16进制),按Ctrl+G跳到000B9A4D,我们看到了一大段的字符串,这些应该是程序控件名及属性的定义,修改大小写后并不会影响程序的正常执行。选中包含000B9A4D_000B9A54在内的一段,点右键,选择“修改数据”,选择“大小写反转”,最后保存文件,再用诺顿8.0企业版查杀,通过,测试上线成功。

PS:从网上的资料来看,诺顿的特征码基本上是定位在字符串上,一般修改大小写就可完成免杀。

接下来在刚才修改免杀的基础上,我们再来修改麦咖啡的特征码。

用OC计算文件偏移000B28B8处的内存地址为004B9CB8,用OD加载鸽子服务端,按Ctrl+G跳转到004B9CB8处,看看该处的内容

004B9CB8   4E       dec esi

这里是减法运算,我们来看看它附近的汇编代码。

004B9CB0   4E       dec esi

004B9CB1   0049 00     add byte ptr ds:[ecx],cl

004B9CB4   43       inc ebx

004B9CB5   004F 00     add byte ptr ds:[edi],cl

004B9CB8   4E       dec esi

004B9CB9   0000       add byte ptr ds:[eax],al

各个寄存器相互并不影响,也不存在堆栈和出栈操作,我们要做的是改变004B9CB8处的汇编代码,这样也就改变了特征码,最简单的方法就是将004B9CB8处的代码写到程序后面的0区域,然后用JMP指令来完成跳转。不过这里不需要这么做,如果将004B9CB5和004B9CB8处的代码交换一下,改成如下的形式

004B9CB5   4E       dec esi

004B9CB8   004F 00     add byte ptr ds:[edi],cl

很明显原来004B9CB8处的代码换成了004B9CB5处的,而004B9CB5处的则换成了004B9CB8处的代码,交换顺序后,保存文件。用麦咖啡查杀已经通过,测试上线成功。

最后就是用Resource Hacker等资源编辑工具删除hacker资源,将修改后的服务端文件命名为CServer.dat覆盖到鸽子的Cache目录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DES加密算法,c语言实现。对于每个 64 位长度的明文分组的加密过程如下: ( 1 )初始置换:输入分组按照初始置换表重排次序,进行初始置换。 ( 2 ) 16 轮循环: DES 对经过初始置换的 64 位明文进行 16 轮类似的子加密过程。每一轮的 加密过程步骤如下: 将 64 位明文在中间分开,划分为 2 部分,每部分 32 位,左半部分记为 L ,右半部分记为 R , 以下的操作都是对右半部数据分进行的。 扩展置换:扩展置换将 32 位的输入数据根据扩展置换表扩展成为 48 位的输出数据。 异或运算:将 48 位的明文数据与 48 位的子密钥进行异或运算( 48 位子密钥的产生过程以后 将详细讨论) 。 S 盒置换: S 盒置换是非线性的, 48 位输入数据根据 S 盒置换表置换成为 32 位输出数据。 直接置换: S 盒置换后的 32 位输出根据直接置换表进行直接置换。 经过直接置换的 32 位输出数据作为下一轮子加密过程的 L 部分,这 32 位输出数据与本轮 的 L 部分进行异或操作,结果作为下一轮子加密过程的 R 部分。然后进入下一轮子加密过程, 直到 16 轮全部完成。 ( 3 )终结置换:按照终结置换表进行终结置换, 64 位输出就是密文。 在每一轮的子加密过程中, 48 位的明文数据要与 48 位的子密钥进行异或运算, 子密钥的产生 过程如下: ( 1 )压缩型换位 1 : 64 位密钥根据压缩型换位 1 置换表进行置换,输出的结果为 56 位。 ( 2 )将经过压缩型换位 1 的 56 位密钥数据在中间分开,每部分 28 位,左半部分记为 C ,右 半部分记为 D 。 ( 3 ) 16 轮循环: C 和 D 要经过 16 轮类似的操作产生 16 份子密钥,每一轮子密钥的产生过 程如下: 循环左移: 根据循环左移表对 C 和 D 进行循环左移。 循环左移后的 C 和 D 部分作为下一轮子 密钥的输入数据,直到 16 轮全部完成。 将 C 和 D 部分合并成为 56 位的数据。 压缩型换位 2 : 56 位的输入数据根据压缩型换位 2 表输出 48 位的子密钥,这 48 位的子密钥 将与 48 位的明文数据进行异或操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值