体育资讯网

您现在的位置是:首页 > 分类12 > 正文

分类12

mstsc易语言工具源码(mstsc软件)

hacker2022-07-11 08:01:26分类1257
本文目录一览:1、怎么查看易语言源码2、

本文目录一览:

怎么查看易语言源码

他是不可能看到e的真正源码的,od是反汇编工具,所以他只能看到汇编程序的源码

易语言怎么编写远程控制啊?像灰鸽子的那种!最好有源代码!

gh0st远控软件采用驱动级RESSDT过主动,svchost参数启动,替换系统服务的方式工作的,工作方式较为先进,美中不足的部分是没有进行驱动级或用户级隐藏,当然这部分可以添加进去。编码利用了VC的编程环境。

一、环境配置

编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来编译工程的,配置部分比较简单,网上有很多资料,这里不再详述,有兴趣的朋友也可以查看DDK和SDK的相关帮助。

二、特征码定位简述

杀毒软件查杀木马的原理基本是根据特征查杀的,被查杀的部分我们称之为特征码,所以我们可以利用特征码定位工具MyCLL定位出病毒的特征码位置,定位工具原理是将被扫描木马分块,利用分段填充的方式,匹配杀软的特征值,找到杀软查杀病毒的位置。

定位出特征码,如何反向找到源码中的对应位置呢?请看下面分析,

三、二进制文件与源码定位之map文件利用

map文件是二进制和源码之间对应的一个映射文件。

我们假设根据第三步我们定位出了病毒的特征码:

病毒名称 特征码位置 内存地址

svchost.dll 000038AA_00000002 100044AA

svchost.dll 00005F98_00000002

第一步设置VC编译环境生成Map文件。

在 VC 中,点击菜单“Project - Settings”选项页(或按下 Alt+F7),选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要点击 Link 选项卡,选中“Generate mapfile”复选框,并在最下面的 Project Options 里面输入:/mapinfo:lines,表示生成 MAP 文件时,加入行信息。设置完成。

第二步编译VC工程,设置活动工程编译即可,这个不用说明。这个步骤完成后,在release(或debug)目录,多了一个.map文件(比如svchost.map)。

第三步打开map文件(用UE或文本编辑器打开都行),形式如下:

(begin)

Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)

Preferred load address is 10000000

---------------------------------------------------------------------------1----(为方便说明,wrw添加)

Start Length Name Class

0001:00000000 00010a50H .text CODE

0001:00010a50 00000485H .text$x CODE

0002:00000000 000004c8H .idata$5 DATA

......

0003:00000010 00000004H .CRT$XIZ DATA

0003:00000020 00001a50H .data DATA

0003:00001a70 00000688H .bss DATA

0004:00000000 000000a8H .rsrc$01 DATA

0004:000000b0 00000cf0H .rsrc$02 DATA

----------------------------------------------------------------------------2---(为方便说明,wrw添加)

Address Publics by Value Rva+Base Lib:Object

0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj

0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj

0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj

0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj

0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj

0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj

0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj

......

0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj

0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj

0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj

0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj

0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj

......

----------------------------------------------------------------------------3---(为方便说明,wrw添加)

Line numbers for .\Release\FileManager.obj(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment .text

17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0

25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee

77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d

......

532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440

546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492

551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4

558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506

......

(end)

我们看下,定位svchost.dll 的第一个特征码内存地址为:100044AA,在第2块中,我们可以找到RVA+BASE与之很接近的是

0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj

这样我们可以定位到FileManager.cpp中的FixedUploadList函数,是不是范围缩小了?

下面我们再缩小代码行

利用这个公式:特征码行偏移 = 特征码地址(Crash Address)- 基地址(ImageBase Address)- 0x1000

看起来好像很难,其实很简单,我们将100044AA去掉内存基址10000000,再减1000,因为PE很多从1000开始,可以得到代码偏移地址为34AA。到第3块中找对应的代码行。

偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中间,也就是551行和552行中间,我们到源程序中查找第551行:

wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);

这样就定位出源代码了,要怎么修改就怎么修改它就可以了。

四、实战免杀

A、卡巴免杀

首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前面的特征码重叠的地方,而是杀配置信息。

第一步、sys免杀

sys重新编译后,增加了输入表的函数,同时系统不同,造成很多地方不同于原特征,顺利通过卡巴、金山、小红伞等杀软。

第二步、svchost.dll免杀

特征码定位MultiByteToWideChar和"gh0st update"两个位置。这里是通过第3步map文件得出的。

卡巴怕加花指令, 这个函数MultiByteToWideChar的调用上,可以在这个函数前面随便加几句无效语句就可以通过卡巴杀软。

字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符串就可以了^_^,这个方法同时可以过金山杀软。

第三步、server免杀

卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入AAAAAA配置信息之前,随便写些东西,就可以做server免杀。

卡巴免杀完成!

B、Avast免杀

最新的avast杀软再查杀1下,杀install.exe和svchost.dll(也就是杀生成的文件和其中的资源文件),接着做它的源码免杀。

定位在特征字符串%02d/%02d/%02d和“SYSTEM\CurrentControlSet\Services\%s”两个地方。

解决方案:

1、svchost.dll的特征码定位在键盘记录KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函数。特征字符串%02d/%02d/%02d,也就是我们看到键盘记录的日期,修改之,修改的方法很多,将其改为[%d/%d/%d %d:%d:%d] ,编译即可通过avast杀软。

2、install的特征码定位在“SYSTEM\CurrentControlSet\Services\%s”,对应文件是install.cpp里的InstallService函数,修改大小写,编译即可通过免杀。

五、添加垃圾代码的小方法

垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。可以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为宜。

添加输出表的方法:

有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修改1次资源 ,其实我们在源码上添加如下语句:

extern "C" __declspec(dllexport) bool JustTempFun();//声明

……

extern "C" __declspec(dllexport) bool JustTempFun() //实现

{

return false;

}

编译后,输出表就被改变了,有的杀软就可做到代码免杀。

六、gh0st自动生成6to4ex.dll的修改

看到好多站友提问自动生成6to4ex.dll的问题,有热心站友也提出了自己的见解 ,我感觉有些人提出的解决方案不完全正确,有可能造成刚入手人误解,我根据自己的理解说明1下。

gh0st服务端是通svchost -netsvcs启动的,所以程序要利用netsvcs 服务,服务端也就是根据netsvcs生成的,故不能说服务端生成是随机的,相对于大多数系统来讲,基本是固定的,下面看分析。

查看install.cpp里面的InstallService()方法,首先遍历HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Svchost中的服务项,查找到一个服务后,程序采取替换服务的方法,将原服务删除,然后生成对应服务项+ ex.dll的文件替换原服务,6to4服务一般排在第一位,6to4服务是一种自动构造隧道的方式,作用在于只需要一个全球惟一的IPv4地址便可使得整个站点获得IPv6 的连接,这个服务对一般人来讲,基本闲置,所以我们的程序就把6to4服务给替换掉,同时在windows\system32\目录下生成 6to4ex.dll,以后启动就是6to4ex了,如果把这个服务跳过去,就依次向下生成Ias、Iprip等服务啦,如果netsvcs项没有可以替换的服务,则程序将自己添加1个服务,名称就是由 AddsvchostService()方法产生的netsvcs_0x%d。

这样说不知道关心服务名称的明白了不?

这个不能说是技术问题,但是小技巧问题可以从这里产生,我不知道其他人的360是怎么过的,但是我觉得可以提示1下的是,如果是360默认系统安全的服务,它肯定不会报不安全,替换闲置的系统安全的服务则通过360的效果要好的多

本文来自: 华夏黑客同盟论坛 本文详细地址:

易语言源码工具箱源码

制作方案:

准备一个要载入工具箱的exe

新建个易语言程序,进入易语言-插入-资源-图片或图片组

将图片1改为exe

双击内容

导入新图片

然后载入exe

回到启动窗口,新建个按钮,按钮输入代码:

写到文件("D:\临时调试文件.exe",#exe)

运行("D:\临时调试文件.exe")

删除文件("D:\临时调试文件.exe")

然后调试程序,点击那个按钮,你会发现刚才载入的exe运行了!

什么是易语言源码?怎么用,大概有几种?我是新手,详细点!

就是一个程序的源文件

一个程序里面有很多原理

这些就是易语言源码

比如一个EXE的文件

它就有一个源码

这么说吧

如果一个JPG图片

那么它的源码就是还没保存的时候可以编辑的那个情况下

比如说一个程序(点按钮1就出现对话框“123”)

那么它的源码就是:

大概原理就是

按钮1点击时:信息框(“123”,0,)

这样

就是易语言源码

易语言源码

哦 哦 ,那我给你个记事本的源码吧 如下

.版本 2

.支持库 iext2

.支持库 iext

.支持库 eAPI

.程序集 窗口程序集1

.程序集变量 文件路径, 文本型

.程序集变量 当前是否正在打字, 逻辑型

.子程序 _超级编辑框1_内容被改变, , , 更改超级编辑框的颜色

.局部变量 颜色, 字符格式

颜色.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))

超级编辑框1.置选择区字符格式 (颜色)

状态条1.置文本 (0, “行 ” + 到文本 (超级编辑框1.取行数 ()) + “ 文本长度 ” + 到文本 (超级编辑框1.取文本长度 ()))

.子程序 __启动窗口_创建完毕, , , 设置通用对话框

通用对话框1.过滤器 = “txt|*.txt”

通用对话框1.默认文件后缀 = “txt”

通用对话框1.标题 = “传说记事本保存对话框...”

_时间日期_被选择 ()

_炫银皮肤_被选择 ()

备忘录提醒 ()

.子程序 __启动窗口_位置被改变, , , 位置被改变后超级编辑框也跟着改变(按钮1也跟着改变)

.如果真 (_启动窗口.位置 = 3)

超级编辑框1.宽度 = 取屏幕宽度 () - 3

超级编辑框1.高度 = 取屏幕高度 () - 80 - 按钮1.高度 - 10

按钮1.顶边 = 取屏幕高度 () - 状态条1.高度 - 100

按钮1.宽度 = 取屏幕宽度 () - 5

按钮1.高度 = 状态条1.高度 + 10

.如果真结束

.如果真 (_启动窗口.位置 = 0)

超级编辑框1.宽度 = _启动窗口.宽度 - 10

超级编辑框1.高度 = _启动窗口.高度 - 55 - 按钮1.高度 - 10

按钮1.顶边 = 200

按钮1.宽度 = 560

.如果真结束

.子程序 _新建_被选择, , , New文件

.如果真 (超级编辑框1.内容 ≠ “”)

.如果真 (信息框 (“您还没保存!请问您要进行保存吗?”, 4, ) = #是钮)

通用对话框1.类型 = 1

通用对话框1.打开 ()

写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))

.如果真结束

.如果真结束

.子程序 _打开_被选择, , , Open文件

通用对话框1.类型 = 0

通用对话框1.打开 ()

.如果真 (通用对话框1.文件名 ≠ “”)

超级编辑框1.内容 = 到文本 (读入文件 (通用对话框1.文件名))

文件路径 = 通用对话框1.文件名

.如果真结束

.子程序 _保存_被选择, , , Save文件

.如果真 (文件路径 = “”)

通用对话框1.类型 = 1

通用对话框1.打开 ()

写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))

.如果真结束

.如果真 (文件路径 ≠ “”)

写到文件 (文件路径, 到字节集 (超级编辑框1.内容))

.如果真结束

.子程序 _保存到_被选择, , , Save As文件

通用对话框1.类型 = 1

通用对话框1.打开 ()

.如果真 (通用对话框1.文件名 ≠ “”)

写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))

.如果真结束

.子程序 _撤销_被选择, , , Undo 文本

超级编辑框1.撤消 ()

.子程序 _剪切_被选择, , , Cut 文本

超级编辑框1.剪切 ()

.子程序 _复制_被选择, , , Copy 文本

超级编辑框1.复制 ()

.子程序 _粘连_被选择, , , Paste文本

超级编辑框1.粘贴 ()

.子程序 _删除_被选择, , , Delete文本

超级编辑框1.删除 ()

超级编辑框1.内容 = 取文本左边 (超级编辑框1.内容, 取文本长度 (超级编辑框1.内容) - 1)

.子程序 _寻找_被选择, , , Find文本

载入 (Find窗口, , 真)

.子程序 _寻找下一个_被选择, , , 还没解决好

.子程序 _文本替换_被选择, , , 文本替换

载入 (文本替换窗口, , 真)

.子程序 _跳到_被选择, , , 还没解决好

载入 (跳到窗口, , 真)

.子程序 _全选_被选择, , , Select All文本

超级编辑框1.被选择字符数 = 取文本长度 (超级编辑框1.内容)

.子程序 _时间日期_被选择, , , Time-Date

.局部变量 小时, 文本型

.局部变量 分钟, 文本型

.局部变量 日期, 文本型

.局部变量 年份, 文本型

.局部变量 月份, 文本型

.局部变量 日份, 文本型

小时 = 到文本 (取小时 (取现行时间 ()))

分钟 = 到文本 (取分钟 (取现行时间 ()))

年份 = 到文本 (取年份 (取现行时间 ()))

月份 = 到文本 (取月份 (取现行时间 ()))

日份 = 到文本 (取日 (取现行时间 ()))

状态条1.置文本 (1, 小时 + “:” + 分钟 + “ ” + 年份 + “-” + 月份 + “-” + 日份)

.子程序 _传说记事本v13_被选择, , , About Notepad

信息框 (“软件作者:古老的传说” + #换行符 + “QQ:1041750677” + #换行符 + “MSN:thum_wai_lun@hotmail.com” + #换行符 + “编写工具:易语言” + #换行符 + “软件版本:1.3” + #换行符, 0, )

.子程序 _密码保管_被选择, , , Password Protect

载入 (密码窗口, , 真)

.子程序 _备忘录_被选择, , , 载入备忘录窗口

载入 (备忘录窗口, , 真)

.子程序 备忘录提醒, , , 备忘录提醒

.局部变量 分割文本, 文本型, , "0"

.局部变量 今天日期, 文本型

.局部变量 分割今天日期, 文本型, , "0"

分割文本 = 分割文本 (读配置项 (取运行目录 () + “\备忘录.ini”, “备忘录”, “提示日期”, ), “日”, )

今天日期 = 到文本 (取日期 (取现行时间 ()))

分割今天日期 = 分割文本 (今天日期, “日”, )

.如果真 (取数组成员数 (分割文本) = 1 或 取数组成员数 (分割文本) > 1)

.如果真 (分割文本 [1] = 分割今天日期 [1])

状态条1.置文本 (2, “您今天有一份备忘录噢^_^”)

.如果真结束

.如果真结束

.子程序 _银白皮肤_被选择, , , 银白皮肤

更换新皮肤 (1)

.子程序 _浅白皮肤_被选择, , , 浅白皮肤

更换新皮肤 (10)

.子程序 _浅灰皮肤_被选择, , , 浅灰皮肤

更换新皮肤 (13)

.子程序 _浅蓝皮肤_被选择, , , 浅蓝皮肤

更换新皮肤 (19)

.子程序 _浅黑皮肤_被选择, , , 浅黑皮肤

更换新皮肤 (5)

.子程序 _炫银皮肤_被选择, , , 炫银皮肤

更换新皮肤 (2)

.子程序 _炫白皮肤_被选择, , , 炫白皮肤

更换新皮肤 (15)

.子程序 _炫蓝皮肤_被选择, , , 炫蓝皮肤

更换新皮肤 (18)

.子程序 _深黑皮肤_被选择, , , 深黑皮肤

更换新皮肤 (14)

.子程序 __启动窗口_可否被关闭, 逻辑型, , 透明显示最小化运行

.局部变量 变量1, 整数型

变量1 = 255

.计次循环首 (255, )

设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)

变量1 = 变量1 - 1

.如果真 (变量1 = 1)

置托盘图标 (#程序图标, “古老的传说记事本v1.2”)

_启动窗口.可视 = 假

.如果真结束

.计次循环尾 ()

返回 (假)

.子程序 __启动窗口_托盘事件, , , 透明显示_启动窗口

.参数 操作类型, 整数型

.局部变量 变量1, 整数型

.如果真 (操作类型 = 1)

_启动窗口.可视 = 真

.计次循环首 (255, 变量1)

设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)

.计次循环尾 ()

.如果真结束

.如果真 (操作类型 = 3)

弹出菜单 (图标菜单, 取鼠标水平位置 (), 取鼠标垂直位置 ())

.如果真结束

.子程序 __启动窗口_将被销毁, , , 销毁任务栏图标

置托盘图标 ({ }, )

.子程序 _打开传说记事本_被选择, , , _启动窗口.可视=真

__启动窗口_托盘事件 (1)

.子程序 _销毁_被选择, , , 销毁软件

销毁 ()

.子程序 _超级编辑框1_按下某键, 逻辑型, , 正在打字中...

.参数 键代码, 整数型

.参数 功能键状态, 整数型

当前是否正在打字 = 真

按钮1.标题 = “正在打字中...”

时钟1.时钟周期 = 800

返回 (真)

.子程序 _超级编辑框1_放开某键, 逻辑型, , 暂停打字中...

.参数 键代码, 整数型

.参数 功能键状态, 整数型

当前是否正在打字 = 假

返回 (真)

.子程序 _时钟1_周期事件, , , 暂停打字中...

.如果真 (当前是否正在打字 = 假)

按钮1.标题 = “暂停打字中...”

.如果真结束

.子程序 _超级编辑框1_选择区被改变, , , 超级编辑框1.滚动

超级编辑框1.滚动 (1)

发表评论

评论列表

  • 晴枙拒梦(2022-07-11 13:32:27)回复取消回复

    ).子程序 _浅蓝皮肤_被选择, , , 浅蓝皮肤更换新皮肤 (19).子程序 _浅黑皮肤_被选择, , , 浅黑皮肤更换新皮肤 (5).子程序 _炫银皮肤_被选择, , , 炫银皮肤更换新皮肤 (2).子程序 _炫白皮肤_被选择, , , 炫白皮肤更换新皮肤 (

  • 语酌城鱼(2022-07-11 14:03:30)回复取消回复

    程序里面有很多原理这些就是易语言源码比如一个EXE的文件 它就有一个源码这么说吧如果一个JPG图片那么它的源码就是还没保存的时候可以编辑的那个情况下比如说一个程序(点按钮1就出现对话框“123”)那么

  • 痴者掩灼(2022-07-11 13:14:00)回复取消回复

    _删除_被选择, , , Delete文本超级编辑框1.删除 ()超级编辑框1.内容 = 取文本左边 (超级编辑框1.内容, 取文本长度 (超级编辑框1.内容) - 1).子程序 _寻找_被选择, , , Find文本载入 (Find窗口, , 真).子程序 _寻找下