| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 工具介绍 >> 正文 用户登录 新用户注册
[组图]简单语言写不简单工具           ★★★ 【字体:
第一个花指令生成器--简单语言写不简单工具
作者:逆流风 文章来源:华盟收集 点击数: 更新时间:2008-9-22

  前言

  相信做过免杀的朋友都知道花指令吧。加花指令是一种不错的文件免杀方法,而网上公布的花指令和花指令添加器因为里边的花指令被公布了,所以免杀效果不好。有点汇编基础的人就写自己的花指令,但写花指令的过程比较烦,所以我萌生了写一个花指令生成器的想法,首创哦^_^

  一、写花指令生成器必备知识

  1、花指令原理

  花指令是程序中的无用代码,程序多它没影响,少了它也能正常运行。加花指令后,杀毒软件木马静态反汇编时,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。

  2、如何写花指令

  下面我们先看看一段花指令,分析理解它的原理:

  PUSH EBP

  MOV EBP,ESP

  push edx

  pop edx

  inc ecx

  dec ecx

  add esp,21

  add esp,-21

  add esp,10

  sub esp,10

  JMP 附近空地址随便乱跳

  JMP 原入口点

  花指令一般有三部分,开头就是PUSH EBP和MOV EBP,ESP这两句在大部分程序开头可以经常看到。PUSH EBP是把EBP压入堆栈,MOV EBP,ESP是把ESP的值赋给EBP,不懂没关系,只要知道PUSH EBP和MOV EBP,ESP这两句经常出现在文件开头就可以了,随便用OllyDbg打开一个不加壳的文件载入后经常停在PUSH EBP MOV EBP,ESP。

  接下来就是花指令啦,push edx是把通用寄存器EDX压入堆栈,pop edx是把通用寄存器EDX弹出堆栈,这两句和起来就相当于什么也没做。接下来的inc ecx,ecx用来保存计数值,也是寄存器,INC是加1;下面的dec ecx中的dec是减1,加1减1相抵消,又是什么也没做。add esp,21这是寄存器esp加21,add是加上,下面一句add esp,-21是寄存器esp加-21,小学知识,+21+(-21)=0,还是什么也没做。再下来add esp,10寄存器esp加21,sub esp,10寄存器esp减10,sub是减去。一个+10,一个-10相互抵消了。

  最后是跳转语句,我用两句JMP,第一句在花指令附近随便跳到个空地址,第二个JMP是从空地址跳回文件的原入口点。

  3、如何写入花指令

  我们来看看加花指令的一般步骤:

  1、准备好要加的花指令;

  2、准备未加壳的黑客软件;

  3、用OllyDbg打开这个黑客软件,记下入口点的内存地址;

  4、找到零地址,一句一句写入花指令,再用JMP跳回程序入口点;(如果找不到空白地址,我们可以用zeroadd加区段,E文软件,我汉化好的,操作简单就不演示了。)

  5、保存后用Peditor修改文件入口点为开始写花指令的地址。这样运行程序就先运行花指令再跳回程序的原始开头执行程序了;

  6、检测程序是否正常运行和免杀效果。

  一般步骤就是这样了,不演示了,大家看看06年第9期主题乐园,里面有详细的例子。

  二、开始写花指令生成器

  1、花指令生成器的编写思路

  了解了花指令的一些知识后我们来考虑下编写的思路。我们使用perl来编写这个花指令生成器,先看看我画的流程图:(见图1)

  

   

  我们需要定义两个数组,一个是花指令数组,一个跳转语句数组,用for循环和rand函数来实现对数组的循环随机读取,我们还需要一个变量来控制循环次数。程序工作原理是对两个数组的随机读取达到生成花指令的目的。

  2、代码编写和分析

  #!/usr/bin/perl

  if($#ARGV<0){

  print" \nUsage: \n\n liyx_HZJ.exe <一个大于1的数字以确定花指令的长度>\n \nmade by liyx \nCopyright [w Group] 2006\n";

  exit(1);

  }#使用帮助。

  $N=$ARGV[0];#获的参数,赋值给$N。

  if($N<1){

  print" \n 错误,请输入大于1的数字,以确定花指令的长度。 \n \nmade liyx \nCopyright [w Group] 2006\n";

  exit(1);

  }#出错提示。

  程序的第一行注明了这是个perl程序,注释是从符号“#”开始到该行结束。“!”表示perl程序中的第一个注释具有特殊含义。

  接下来的if($#ARGV<0)是判断有无命令行输入的参数,perl的存储命令行参数是@ARGV数组,在perl中,程序运行时自动取得程序名后和回车键之前的所有项目并根据结果生成数组@ARGV,$ARGV[0]是第一个参数。当无输入参数(即$#ARGV<0),用print输出使用帮助。有则$N=$ARGV[0],把输入参数赋值给$N变量。接着再判断$N的大小,$N必须大于1。($N在这个程序中用来控制花指令的长短)$N小于1时,一样打印出错误提示。(如图2)

                             

$H1="push edx\npop edx\n";
$H2="push eax\npop eax\n";
$H3="inc ecx\ndec ecx\n";
$H4="add esp,10\nsub esp,10\n";
$H5="add esp,21\nadd esp,-21\n";
$H6="nop\nnop\n";


@H=(
$H1,
$H2,
$H3,
$H4,
$H5,
$H6,
);#花指令的数组。

[1] [2] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客: 没有了
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    木马免杀之汇编花指令技巧
    花指令集合
    网上收集了几个花指令!
    首发花指令指导动画
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号