2011-03-17 09:56:00 FallenDa 阅读数 635
  • Android平台漏洞挖掘与利用

    Android平台漏洞挖掘与利用视频教程,该课程将介绍几类漏洞的特征以及利用方法。本次课程将以Qualcomm平台上的CVE-2013-6123漏洞为例,介绍如何找出危险的数据交换代码,以及如何稳定利用任意地址写漏洞。也将介绍stagefright漏洞的特征,并且进一步公开C0RE Team如何独立发现高危stagefright 0-day漏洞。 讲师介绍:吴家志,奇虎360开发组长/工程师/技术讲师

    8308 人正在学习 去看看 CSDN讲师

下边的代码实现对Windows、Mac、Linux、Unix擦作系统的判断:

<script type="text/javascript" language="JavaScript">
<!--
function check_os() {
	windows = (navigator.userAgent.indexOf("Windows",0) != -1)?1:0;
	mac = (navigator.userAgent.indexOf("mac",0) != -1)?1:0;
	linux = (navigator.userAgent.indexOf("Linux",0) != -1)?1:0;
	unix = (navigator.userAgent.indexOf("X11",0) != -1)?1:0;
 
	if (windows) os_type = "MS Windows";
	else if (mac) os_type = "Apple mac";
	else if (linux) os_type = "Lunix";
	else if (unix) os_type = "Unix";
 
	return os_type;
}
//-->
</script>

如果我们需要对Windows操作系统进行更为精确的识别,可以继续使用下边的代码操作:

<script type="text/javascript" language="JavaScript">
<!--
    var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows"); // 确保为windows系统
    var isWin98 = isWin2000 = isWinXP = false;
    var sUserAgent = navigator.userAgent;
    if(isWin) {
        isWin98=sUserAgent.indexOf("Win98") > -1 || sUserAgent.indexOf("Windows 98") > -1; // win98
        isWin2000=sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1; //win2000
        isWinXP=sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows Xp") > -1; //winxp
 
        isWin98 && alert("window 98");
        isWin2000 && alert("windows 2000");
        isWinXP && alert("windows XP");
    }
//-->
</script>

下边的代码是为了实现对浏览器是否支持XML特性的检测:


<script type="text/javascript" language="JavaScript">
	var SupportXml=false;
	var xmldom;
	if(window.ActiveXObject) {
		try {
			xmldom=new ActiveXObject("Microsoft.XMLDOM");
			SupportXml=(xmldom.loadXML(" <ok/>"));
		} catch(e) {} 
	} 
	else if(document.implementation && document.implementation.createDocument) {
		SupportXml=true;
	} 
	alert('XML状态为:'+SupportXml);
</script>

小贴士:为了更好地避免不同浏览器,不同操作系统因为默认文字不同而对页面布局造成影响,应尽量避免CSS中使用固定行高(height:12px;)对文字高度进行限定,应该尽量使用height:auto,如果迫不得已必须限定文字高度(比如只显示一行),则应使用em代替px(例如 height:1.1em;),1em=1文字高度,这样就使得文字高度随着文字大小动态改变,不会造成文字截断现象的发生了。

2009-11-25 21:25:00 huangxinfeng 阅读数 4422
  • Android平台漏洞挖掘与利用

    Android平台漏洞挖掘与利用视频教程,该课程将介绍几类漏洞的特征以及利用方法。本次课程将以Qualcomm平台上的CVE-2013-6123漏洞为例,介绍如何找出危险的数据交换代码,以及如何稳定利用任意地址写漏洞。也将介绍stagefright漏洞的特征,并且进一步公开C0RE Team如何独立发现高危stagefright 0-day漏洞。 讲师介绍:吴家志,奇虎360开发组长/工程师/技术讲师

    8308 人正在学习 去看看 CSDN讲师

    用InstallShield制作安装包时,有时候需要判断操作系统的类型(如Windows XP或者是Windows Vista等),本人通过上InstallShield的官方社区(http://community.flexerasoftware.com/)找到了一些解决办法,现将本人整理过的方法晒出来,与各位一起分享。

方法一:采用注册表的方式进行判断,例程如下:
NUMBER nOS,nvResult;
STRING svOS;


nOS = REGDB_NUMBER;
RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE );
RegDBGetKeyValueEx( "SOFTWARE//Microsoft//Windows NT//CurrentVersion","CurrentVersion", nOS, svOS, nvResult);
if (svOS == "6.0") then
    MessageBox("We are on Vista!", INFORMATION);
else
    if (svOS == "5.1") then
        MessageBox("We are on XP!",INFORMATION);
    endif;
endif;

方法二:采用GetSystemInfo函数进行处理,请看下面的说明信息:
SYSINFO.nWinMajor:
4  The operating system is Windows NT 4.0.  
5  The operating system is Windows Server 2003 R2, Windows Server 2003, Windows   XP,or Windows 2000.  
6  The operating system is Windows Vista or Windows Server 2008.  

SYSINFO.nWinMinor:
 The operating system is Windows Vista, Windows Server 2008, Windows 2000, or Windows NT 4.0.  
1  The operating system is Windows XP.  
2  The operating system is Windows Server 2003 R2, Windows Server 2003, or Windows XP Professional x64 Edition. 

GetSystemInfo(WINMINOR, nvResult, svResult);
GetSystemInfo(WINMAJOR, nvResult, svResult);

方法二可以通过InstallShield的帮助文档找到更详细的信息。

方法三:通过SYSINFO.WINNT的方法进行判断,例程如下:
if (SYSINFO.WINNT.bWinVista) then   
     if (SYSINFO.nOSProductType = VER_NT_WORKSTATION) then 
          // 当前操作系统为Windows Vista
     endif;
endif;
if (SYSINFO.WINNT.bWinXP) then    
    当前操作系统为Windows XP
endif;

上述三种方法是最为常见的解决办法,当然亦可能还有其他的方法可以进行处理。

2018-02-26 08:46:00 weixin_34417635 阅读数 118
  • Android平台漏洞挖掘与利用

    Android平台漏洞挖掘与利用视频教程,该课程将介绍几类漏洞的特征以及利用方法。本次课程将以Qualcomm平台上的CVE-2013-6123漏洞为例,介绍如何找出危险的数据交换代码,以及如何稳定利用任意地址写漏洞。也将介绍stagefright漏洞的特征,并且进一步公开C0RE Team如何独立发现高危stagefright 0-day漏洞。 讲师介绍:吴家志,奇虎360开发组长/工程师/技术讲师

    8308 人正在学习 去看看 CSDN讲师

一般判断系统版本都时候,都会这么写

#define SysVersion [[UIDevice currentDevice] systemVersion].floatValue
复制代码

其实系统已经定义了很多类似的宏,不需要我们去再次定义 就在这个路径下

(__IPHONE_OS_VERSION_MAX_ALLOWED 这个定义是在Simulator /usr/include/AvailabilityInternal.h文件中)

使用都时候可以这样

然后使用:

#ifdef __IPHONE_10_3
  //iOS10 的新特性代码
#endif
复制代码

或者判断是否大于某个版本:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_3

  //系统版本大于iOS 10.3 的新特性代码
#endif
复制代码

__IPHONE_OS_VERSION_MIN_REQUIRED 支持最低的系统版本

__IPHONE_OS_VERSION_MAX_ALLOWED 允许最高的系统版本

转载于:https://juejin.im/post/5a93c948f265da4e914b8338

2019-08-17 00:29:20 weixin_43755584 阅读数 22
  • Android平台漏洞挖掘与利用

    Android平台漏洞挖掘与利用视频教程,该课程将介绍几类漏洞的特征以及利用方法。本次课程将以Qualcomm平台上的CVE-2013-6123漏洞为例,介绍如何找出危险的数据交换代码,以及如何稳定利用任意地址写漏洞。也将介绍stagefright漏洞的特征,并且进一步公开C0RE Team如何独立发现高危stagefright 0-day漏洞。 讲师介绍:吴家志,奇虎360开发组长/工程师/技术讲师

    8308 人正在学习 去看看 CSDN讲师

最近有朋友问我如何判断操作系统是32位还是64位的,我当时没反应过来该怎么判断(当然肯定不是直接看电脑属性的那种判断),下面查询了很多资料,发现很多人都是利用这段代码类似的方法来判断的:

#include <iostream>  
#include <windows.h>  
using namespace std;  
  
int main()  
{  
  
    SYSTEM_INFO si;   
    GetNativeSystemInfo(&si);   
    if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||  
        si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 )   
    {   
        //64 位操作系统   
        cout<<64<<endl;  
    }   
    else {   
        // 32 位操作系统   
        cout<<32<<endl;  
    }  
  
    getchar();  
} 

但是说实话我真的搞不懂中间哪些代码是干嘛的?但这个的确是一个方法。
大家看看我下面的总结的这套方法,不知道能不能帮助到大家,里面也有我看别人的一些资料,希望大家参考下:
首先我们得了解到64位操作系统和32位的区别:
一、64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大牛拉小车”:64位效能就会大打折扣。
二、64位CPUGPRs(General-PurposeRegisters,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说
处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。
三、32位64位操作系统基本数据类型字节大小不同,比如:
32位操作系统 64位操作系统
char :1个字节 char :1个字节
*(指针变量): 4个字节 *(指针变量): 8个字节
int: 4个字节 int: 4个字节
float: 4个字节 float: 4个字节
double: 8个字节 double: 8个字节
long: 4个字节 long: 8个字节
long long: 8个字节 long long: 8个字节
我们会发现最主要的差别是指针变量的大小不一样,其次就是long的字节大小不一样,我们可以通过计算指针类型的大小来计算是哪个操作系统即可。

2013-03-26 15:49:25 weizhiai12 阅读数 2878
  • Android平台漏洞挖掘与利用

    Android平台漏洞挖掘与利用视频教程,该课程将介绍几类漏洞的特征以及利用方法。本次课程将以Qualcomm平台上的CVE-2013-6123漏洞为例,介绍如何找出危险的数据交换代码,以及如何稳定利用任意地址写漏洞。也将介绍stagefright漏洞的特征,并且进一步公开C0RE Team如何独立发现高危stagefright 0-day漏洞。 讲师介绍:吴家志,奇虎360开发组长/工程师/技术讲师

    8308 人正在学习 去看看 CSDN讲师

      在.net 4.5中,判断操作系统不用再写方法去判断了,有直接可以利用的属性了哦,如下所示:

Environment.Is64BitProcess 属性

.NET Framework 4.5       
 

确定当前进程是否为 64 位进程。

 

    当然如果是用的.net 4.5以前的童鞋也不必担心,同样也可以用以下的方法来实现判断系统位数。

    private string Distinguish64or32System()
        {
            try
            {
                string addressWidth = String.Empty;
                ConnectionOptions mConnOption = new ConnectionOptions();
                ManagementScope mMs = new ManagementScope("//localhost", mConnOption);
                ObjectQuery mQuery = new ObjectQuery("select AddressWidth from Win32_Processor");
                ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(mMs, mQuery);
                ManagementObjectCollection mObjectCollection = mSearcher.Get();
                foreach (ManagementObject mObject in mObjectCollection)
                {
                    addressWidth = mObject["AddressWidth"].ToString();
                }
                return addressWidth;
            }
            catch (Exception ex)
            {
              
                return String.Empty;
            }
        }

 

没有更多推荐了,返回首页