魔兽争霸Ubuntu 下的有些软件设置

二、使用Windows API设置钩子  

Ubuntu 下的一对软件安装 
sudo apt-get install virtualbox#华主席推荐
二零零七年年度顶尖软件,最佳编辑采用奖得主…..
sudo apt-get install ntfs-3g ntfs-config
#ntfs写入襄助,装完后运行ntfs-config,把多个钩打上即可。楼下方法作废 
sudo apt-get install googleearth googlizer
gtalk#google相关,skyx友情提示:不推荐马甲 gtalk
sudo apt-get install ghex #GNOME 上的十六进制文件编写器 
sudo apt-get install kvm #Full virtualization on x86 hardware
华主席推荐
sudo apt-get install vmware-player #Free virtual machine player from
VMware 
sudo apt-get install makeself #utility to generate self-extractable
archives 
sudo apt-get install sun-java6-jre#安装JAVA6环境 
sudo apt-get install sun-java6-jdk #安装JAVA6环境# 
sudo update-alternatives –config java#设定JAVA环境 
sudo apt-get install rox-filer#一个简单易行的公文管理软件
sudo apt-get install socks4-server socks4-clients #一个socks
代理服务器/soks4代理客户端
sudo apt-get install mc #恍如norton commander 工具,skyx 吐血推荐
sudo apt-get install liferea #超强的rss reader ,明显比akregator好用,
由zhuqin_83吐血推荐 sudo apt-get install axel-kapt gwget
aria2#多线程下载工具,也可在论坛search
超强工具prozilla,由雕啸长空吐血推荐
sudo apt-get install privoxy tor mixmaster anon-proxy
socat#突破风锁线和雁过无痕
sudo apt-get install kdebluetooth #超简单的ubuntu与蓝牙小叔子大互传文件工具
#蓝牙请参见:   http://forum.ubuntu.org.cn/viewtopic.php?t=61426&;highlight= 
sudo apt-get install build-essential #build-essential 
sudo apt-get install proxychains #一个socks4 socks5代理软件
,可以支撑apt-get代理 
sudo apt-get install language-support-zh
language-pack-zh#安装普通话语言扶助 
sudo apt-get install stardict stardict-common
stardict-cdict-gbstardict-cedict-gb stardict-hanzim
stardict-langdao-ce-gbstardict-langdao-ec-gb stardict-oxford-gb
stardict-xdict-ce-gbstardict-xdict-ec-gb stardict-jcedict
stardict-jedictstardict-jmdict-en-ja stardict-jmdict-ja-en
wyabdcrealpeopletts#安装StarDict
sudo apt-get install rxvt yakuake tilda kuake konsole
multi-gnome-terminal pyqonsole #多少个终端 sudo apt-get install viewglob
#一个shell相关的工具
sudo apt-get install nautilus-open-terminal #在右键菜单中进入打开终端
sudo apt-get instll eva amsn wengophone skype licq
#设置im语音视频聊天软件 
sudo apt-get install beryl emerald emerald-themes#安装beryl 
sudo apt-get install pcmanx-gtk2 qterm mozilla-plugin-pcmanx #安装bbs
客户端 
sudo apt-get install gkrell* #很好的一个东东,装了就通晓了 
sudo apt-get install conky# 有意思的一个体系monitor 
sudo apt-get install nmapfe #nmap前端 
sudo apt-get install meld #一个文本、目录相比器 
sudo apt-get install imagemagick#
e主席(ee)大力推介的批量改动图片的软件,现在论坛个别人在搞个人崇拜 
sudo apt-get install kolourpaint #又一个美术软件 
sudo apt-get install tuxpaint #有意思的美术软件 rgbpaint
#getdeb上有,最弱,但很精妙的图案软件
mtpaint(getdeb上有,比gpaint强一点的图腾软件)。 
sudo apt-get install kompare # 又一个文本相比较器 
sudo apt-get install gnome-commander #gnome 上类似Total
commander的工具
sudo apt-get install krusader #kde 上类似Total commander的工具
sudo sudo apt-get install bum #系统服务管理软件
sudo apt-get install rbot # ruby写的irc bot 
sudo apt-get install sysv-rc-conf
#一款基于perl的开机进程调整工具,sysv-rc-conf执行命令即可
sudo apt-get install rcconf # Debian Runlevel configuration tool
sudo apt-get install rar unrar p7zip* #安装rar 7zip 
sudo apt-get install rpm alien #安装rpm支持 
sudo apt-get install xpdf xpdf-chinese-simplified #设置pdf查看软件
sudo apt-get install xchm xpdf-chinese* #安装chm查看软件
sudo apt-get install gqview #一个图形浏览器
sudo apt-get install gnomebaker k3b#安装刻录软件 
sudo apt-get install brasero #gnome上的刻录软件 
sudo apt-get install ksnapshot #一个抓屏程序 
sudo apt-get install kinstaller #application installer
sudo apt-get install vncserver #vncserver,vncview默认已经安装了 
sudo apt-get install tightvncserver tightvnc-java #另一个vnc 
sudo apt-get install apt-build #frontend to apt to build, optimize and
install packages
sudo apt-get install vim-full #vim无法高亮突显,然后编辑
/etc/vim/vimrc,撤废syntax on前边的”注释符号 sudo apt-get install
firestarter #图形接口的防火墙设定程序 
sudo apt-get install smbfs #smbfs挂载补助 
sudo apt-get install flashplugin-nonfree #设置浏览器Flash插件 
sudo apt-get install gftp kftpgrabber filezilla
kasablanca#安装ftp客户端
sudo apt-get install sun-java5-jdk #安装Java环境 
sudo apt-get install sun-java5-plugin #安装Java环境
sudo apt-get install build-essential # 安装编译环境 
sudo apt-get install yum rpm #redhat相关
sudo apt-get install mysql-client mysql-server #安装mysql服务 
sudo apt-get install kde-i18n-zhcn
kde-i18n-zhtw#k程序闽南语帮忙,很讨厌kde ,但不太讨厌qt程序可以这么装 sudo
apt-get install qt4-qtconfig#qt4 gui配制工具, 如字体等,很厌恶kde
,但不太讨厌qt程序可以如此装 sudo apt-get install kcontrol
#k程序gui配制工具,很厌恶kde ,但不太讨厌qt程序可以如此装 
sudo apt-get apache2 mysql-server php4 php4-gd php4-mysql #安装LAMP 
sudo apt-get install d4x azureus amule ktorrent
mldonkey-servermldonkey-gui rtorrent qtorrent bittornado-gui
bittorrent-guitorrentflux deluge-torrent# 多少个下载/bt/电驴 工具 
sudo apt-get install sysstat #安装sar, iostat and mpstat 
sudo apt-get install nmap #网络端口扫描工具 
sudo apt-get install nfs-common #nfs
sudo apt-get install samba nfs-kernel-server #samba 
sudo apt-get install xvidcap gnome-splashscreen-manager
#安装屏幕录像录制 / splash 管理 sudo apt-get install istanbul #Desktop
session recorder
sudo apt-get install sysinfo xsysinfo#系统信息查阅 网络 [pre]$ 
sudo apt-get install d4x //这是linux上的flashget,在apt中得以找到 $ 
sudo apt-get install amule //那是linux上的emule,在apt中得以找到 $
sudo apt-get install eva
//这是linux下的qq,只可是狡猾的腾讯修改了钻探,用了eva将来再用就无法不输入验证码才能进来,但eva并不协助验证码,所以最后的结果就是eva再也没法用了。
$
sudo apt-get install tor privoxy
//匿名动态代理,与之类似的还有JAP和freedom,据说freedom速度更快一些 $
sudo apt-get install liferea //一个GTK的离线RSS阅读器 $ 
sudo apt-get install curl //一个利用URL语法在指令行下工作的文件传输工具
[/pre] 系统 [pre]$ 
sudo apt-get install rar
//安装rar协助,装了今后,压缩包管理器就可以支撑rar格式了 $ 
sudo apt-get install bum //一个毋庸置疑的安装系统启动程序管理器 $
sudo apt-get install xpdf-chinese-simplified
//xpdf的普通话字体匡助,但是通过试用,貌似乱码依然,那个题目得以参考ubuntu
下Evince看pdf文档的乱码解决方案 $
sudo apt-get install gnome-commander
//类似norton-commander的文件管理器,效用还不错,比较吻合用惯了norton-commander的用户

魔兽争霸,sudo apt-get install nautilus-open-terminal
//在nautilus的右键菜单里打开终端,要重登录才起效 $
sudo apt-get install nautilus-gksu
//在nautilus中以管理人身份打开,要重登录才起效 $
sudo apt-get install ntp //系统时间与internet时间保持同步 $ 
sudo apt-get install meld
//基于gonme的目录差异相比较工具,可以相比较文件夹和文书的变化 $ 
sudo apt-get install enca //一个相当科学的编码转换工具 $ 
sudo apt-get install keepassx
//一个密码管理软件,具有windows版本和linux版本 $ 
sudo apt-get gparted //图形化分区工具 $ 
sudo apt-get install gcolor2 //一个不利的基于gtk的图形化吸取颜色的工具。

sudo apt-get install unison-gtk
//一个基于gtk的公文和目录同步工具,具有相比较和集合效率。 $
sudo apt-get install conduit
//一个很牛的资源协同工具,可以协同网络相册,文件夹,邮件、照片等等资源,相当牛X

sudo apt-get install manpages-zh //中文man手册,linux操作系统的画龙点睛材料
[/pre] 办公软件 [pre]$
sudo apt-get install scribus //一个类似microsoft publisher的排版软件

sudo apt-get install kchmviewer-nokde
//一个看chm的小软件,扶助中文,只是安装后不得不用命令行启动,执行kchmviewer即可
[/pre] 多媒体 [pre]$ 
sudo apt-get install ksnapshot //抓图工具 $ 
sudo apt-get install ogle ogle-gui //dvd 播放器 $
sudo apt-get install mkisofs //貌似是和刻录光盘有关 $ 
sudo apt-get install wink //一个屏幕录像工具,可以用来打造录像教程 $ 
sudo apt-get install gsopcast //一个网络电视 $ sudo apt-get install
gonmebaker //一个gonme下的刻录光盘软件 $
sudo apt-get install isomaster
//一个管理和生成ISO镜像的小工局,能够领到、修改、删除添加文(加文(Gavin))书,效能挺全的。
$ sudo apt-get krita
//一个小巧的图像编辑软件,比GIMP小巧,但职能对付一般的相片修改已经足足了。
$ sudo apt-get install xaralx imagemagick
//一个巨好的免费矢量图绘制工具,效能不是相似的强,windows下收费,linux下免费。
$ sudo apt-get install gnome-subtitles
//linux下的divx电影的字幕调校工具,可视化的哦 [/pre] 游戏 $ sudo
apt-get install wormux //百战天虫linux版,据自己体验,比起百战天虫差不少
[pre]
$ sudo apt-get install assaultCube
//一个类似CS的FPS游戏,不过据本人体验,效果比起CS差远了 $ sudo apt-get
install glest glest-data
//一个类似魔兽争霸的3D即时战略游戏,相当不错,强烈推荐。
http://wwwwww.ylmf.net/simple/index.php?t1322577.html

附件:外挂成品下载(运行需要.net
2.0以上条件)

   
其实作为游戏外挂来说,紧要就是两个效能:模拟键盘操作、模拟鼠标操作、修改内存数据。修改内存数据相比难,但模拟鼠标键盘的操作却很简单。很多流行游戏的外挂,都得以只经过模拟鼠标键盘来兑现,例如:劲舞团、QQ音速、连连看、各种网页游戏,以及各种大型网游中的自动打怪、自动吃药等等。

     首先简单介绍一下,外挂程序模拟键盘的规律。

   
于是乎,在下面的代码中,我们定义了一个甩卖键盘音讯函数的信托KeyBoardHookProcedure
= new HookProc(KeyBoardHookProc),并将它看成参数传入SetWindowsHookEx
内。KeyBoardHookProc就是被信托的现实函数。

public void Hook_Start()
    {
        // 安装键盘钩子
        if (hHook == 0)
        {
            KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);

            hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardHookProcedure, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);

        }
    }

 

    先介绍一下设置钩子的明星函数:SetWindowsHookEx 。它的参数说明如下。

 网上有很多外挂制作的学科,大多是讲针对大型网络游戏的,重要包含部分抓包、反汇编、C++的学识汇总。事实也这么,常见的外挂都是采取VC++写的,从来不曾过C#抑或其他.NET语言编写的外挂。

public static int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
       //监控用户键盘输入

         KeyBoardHookStruct input = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));

            //截获Home  键          

            if (input.vkCode == (int)Keys.Home)
            {
              //此处写入其他操作逻辑                

            }

           // 继续执行下一个钩子程序
            return CallNextHookEx(hHook, nCode, wParam, lParam);

        }

       
显血功用:
玩war3的都知道,war3自带的显血快速键有3个。Alt键是显示所有单位生命,[
键显示友方单位生命,]
键彰显地点单位生命。外挂需要做的业务只是是效仿一贯按着某个键不放手而已。由于Alt键与其余很多键构成组合键,故我们无法模拟长按Alt,否则会潜移默化健康游玩。大家的化解方案应该是模拟长按
[ 键和 ] 键。代码如下:

 

      //键盘Hook结构函数
        [StructLayout(LayoutKind.Sequential)]
        public class KeyBoardHookStruct
        {
            public int vkCode;
            public int scanCode;
            public int flags;
            public int time;
            public int dwExtraInfo;
        }
        #region DllImport
        //设置钩子
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        //抽掉钩子
        public static extern bool UnhookWindowsHookEx(int idHook);
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        //调用下一个钩子
        public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, IntPtr lParam);
        //取得模块句柄 
        [DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        private static extern IntPtr GetModuleHandle(string lpModuleName);

        //寻找目标进程窗口

        [DllImport("USER32.DLL")]
        public static extern IntPtr FindWindow(string lpClassName,
            string lpWindowName);
         //设置进程窗口到最前 

        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
       //模拟键盘事件 

        [DllImport("User32.dll")]
        public static extern void keybd_event(Byte bVk, Byte bScan, Int32 dwFlags, Int32 dwExtraInfo);
              //获得魔兽程序的句柄
                IntPtr wcHandle = FindWindow(null, "Warcraft III");

                //如果钩子有效
                if (wcHandle != IntPtr.Zero)
                {
                    //设置游戏窗口到最前
                    SetForegroundWindow(wcHandle);

                byte VK_NUM1 = 219;   //键盘上 [ 键的代码。按[可显示友方单位生命值。
                  byte VK_NUM2 = 221;   // 键盘上] 键的代码。按]可显示敌方单位生命值。
                  keybd_event(VK_NUM1, 0, 0, 0); //长按[
                keybd_event(VK_NUM2, 0, 0, 0);  //长按]

          寥寥两行代码,但含有了一对一丰盛的内容。

   
请小心lpfn那么些参数。下面的讲演是“函数指针”。在C#中,是不可以一贯采取指针的,更不要说函数指针了。我们得以选用C#中的委托(delegate)来贯彻函数指针的效果。

          有了上述windows API函数的扬言,下一步就是安装钩子了。

//释放按键的常量
   private const int KEYEVENTF_KEYUP =2;

三、监控用户操作

    Warcraft
Ⅲ,学名魔兽争霸之冰封王座,俗称魔兽,简称war3,在近年六七年风行全球。近来两年,war3在中华又引发了玩DOTA的新高潮。

//委托
public delegate int HookProc(int nCode, IntPtr wParam, IntPtr lParam);

 

一、表明Windows API 中的函数和常量

 

               }

 

    
外挂程序与游乐程序是四个不等的经过。外挂程序行使Windows提供的API找到游戏程序的历程,并设置键盘钩子(什么叫做钩子?你不亮堂,但百度明白。)设置完钩子后,我们再督查游戏经过中用户的按键,并依照用户需求举办拍卖,完成某些模拟键盘动作。 

    最终界面如下:

   
作为微软.NET技术的忠贞粉丝,这不免是一种遗憾。但是没什么,上面流牛木马就教我们两招,包教包会,免收学费。
:)

  
设置好钩子后,我们得以在被信托的函数中写入监控用户操作与模拟键盘的代码。

魔兽争霸 1   
本示例包含五个功效:显血;将Q键改为小键盘的7键。玩war3的同桌都明白,这三个职能对于war3(尤其是DOTA)卓绝关键。

       
改键:
 小键盘(Numpad)上的连忙键很不便民按,所以广大玩家喜爱把小键盘上的键改到左侧的假名键盘。玩DOTA的同室都了然,没有其它英雄的技术使用”Q”这一个迅速键(召唤师有一种球是”Q”(不是技术))。于是大家把小键盘上的7键改到Q上,也不会造成任何争辩。方法也很简单:假使监控到用户按”Q”键,则像娱乐经过发送小键盘上的”7″键。代码如下:

SetWindowsHookEx(
idHook: Integer;   {钩子类型}
lpfn: TFNHookProc; {函数指针}
hmod: HINST;       {包含钩子函数的模块(EXE、DLL)句柄; 一般是 HInstance;
假使是眼前线程这里可以是 0}
  dwThreadId: DWORD  {关联的线程; 可用 GetCurrentThreadId 获取当前线程;
0 表示是系统级钩子}
): HHOOK;            {重临钩子的句柄; 0 表示失败}

        //如果用户按了Q键
          if (input.vkCode == (int)Keys.Q)
          {
              //获得魔兽程序的句柄
              IntPtr wcHandle = FindWindow(null, "Warcraft III");

              //如果钩子有效
              if (wcHandle != IntPtr.Zero)
              {
                  //设置游戏窗口到最前
                  SetForegroundWindow(wcHandle);
                  byte VK_Q = (byte)Keys.NumPad7;
                  keybd_event(VK_Q, 0, 0, 0);//按下小键盘7
                  keybd_event(VK_Q, 0, KEYEVENTF_KEYUP, 0); //松开小键盘7
              }
              return 1;
          }

好了,到此地就把模拟键盘的外挂介绍完了。模拟鼠标与之相当相近,请用户自动揣摩。本文仅做抛砖引玉,欢迎感兴趣的心上人来流牛木马的博客举行钻探。

四、依照用户需要效法键盘操作

   
本文制作DOTA游戏中的显血、改键外挂为例,简单地介绍咋样使用C#言语打造游戏外挂。

    
理解了这几个过程之后,大家就足以起来收拾思路了。完成外挂一共需要以下四个步骤:

       本例所使用的函数比较少,它们都在系统的USER32.dll里,包括:设置和取消钩子、调用下一个钩子、导入进程、模拟键盘等等。我们依次导入它们。

       这些函数的命名规范合理,几乎只根据函数名就能知道其功能。

       如果读者对于其中的某些函数不熟悉,请自行搜索MSDN。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website