Windows小知识

1.vs创建项目类型错误

当创建新的应用程序时,不小心选择了错误的应用程序类型。例如,编程员可能创建一个新的 Wi n 3 2应用程序项目,但是创建了一个
进入点函数m a i n。当创建应用程序时,编程员会看到一个链接程序错误消息,因为 w i n 3 2应用
程序项目设置了/ S U B S Y S T E M : W I N D O W S链接程序开关,但是不存在WinMain或wWinMain函
数。这时,编程员可以有4个选择:
• 将main函数改为WinMain。通常这不是最佳的选择,因为编程员可能想要创建一个控制
台应用程序。
• 用Visual C++创建一个新的Win32 控制台应用程序,并将现有的源代码添加给新应用程
下载序项目。这个选项冗长而乏味,因为它好像是从头开始创建应用程序,而且必须删除原
始的应用程序文件。
• 单击 Project Settings 对话框的Link选项卡,将 / S U B S Y S T E M : W I N D O W S开关改为
/ S U B S Y S T E M : C O N S O L E。这是解决问题的一种比较容易的方法,很少有人知道他们只
需要进行这项操作就行了。
• 单击Project Settings对话框的L i n k选项卡,然后全部删除/SUBSYSTEM:WINDOWS开关。程序将根据代码中实现的函数进行操作。

2.程序基地址

PE是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。

PE 文件格式把可执行文件分成若干个数据节(section),不同的资源被存放在不同的节中。
一个典型的 PE 文件中包含的节如下。
.text 由编译器产生,存放着二进制的机器代码,也是我们反汇编和调试的对象。
.data 初始化的数据块,如宏定义、全局变量、静态变量等。
.idata 可执行文件所使用的动态链接库等外来函数与文件的信息。
.rsrc 存放程序的资源,如图标、菜单等。
除此以外,还可能出现的节包括“.reloc”、“.edata”、“.tls”、“.rdata”等
Visual C++链接程序使用的默认基地址是 0 x 0 0 4 0 0 0 0 0,因为这是在运行Wi n d o w s
9 8时可执行文件的映象可以加载到的最低地址。可以改变应用程序加载到的基地址,方法是使
用M i c r o s o f t的链接程序中的/ B A S E : a d d r e s s链接程序开关。

根据基地址进行偏移找到.data,然后进行能找到调用.data的位置,进行软件破解。

3.Win程序进入点




参考资料:

《windows核心编程(第五版)》

《0day安全软件漏洞分析技术(第二版)》

4.Win中变量初始化

Win中如果变量类型是int和int数组、long和long数组、char和char数组等,如果未初始化默认0xcccccc...以cc向后填充

持续更新中......

猜你喜欢

转载自blog.csdn.net/sinat_36391009/article/details/80712952