最简单的Windows程序

准备研究一下vmp 保护,从一个最简单的Windows程序入手似乎是个不错的想法。

怎样才最简单呢,只有一个MessageBox 调用好了。

弹出消息,退出,哦也,够简单吧。

祭出法器VC2010,新建win32 项目,

#include "stdafx.h"

int APIENTRY _tWinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPTSTR    lpCmdLine,

int       nCmdShow)

{

MessageBox(NULL, L"Smallest", L"smallest", MB_OK);

return 0;

}

Release 模式编译生成,OD调试跟踪之。

矮油,太臃肿了!

寻回失落的法器masm32,哇哦,都v11了!

找个simple example,瘦身,再瘦...

; ?

.486                      ; create 32 bit code

.model flat, stdcall      ; 32 bit memory model

option casemap :none      ; case sensitive

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\user32.lib

.const

szTitle     db ‘Smallest‘, 0

szMessage   db ‘smallest‘, 0

.code

; ?

start:

invoke MessageBox, NULL, addr szMessage, addr szTitle, MB_OK

invoke ExitProcess,eax

; ?

end start

好了,build all,恩,这才是最简单的Windows 程序吧,:-)

最简单的Windows程序,布布扣,bubuko.com

时间: 2024-12-30 10:08:05

最简单的Windows程序的相关文章

如何利用CEF3创建一个简单的应用程序 (Windows Platform)

1. 说明 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,引用的是1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 2. 开始 首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在

一起学libcef--一个应用libcef的简单例子(windows程序)

之前博客<一起学libcef–搭建自己的libcef运行环境(Win32程序,错误C2220解决方案)>讲述了如何在win32程序中搭建libcef的环境,今天就通过一个简单的例子,在windows程序中使用libcef. 现在再重新写一下如何搞?直接在源代码上搞起! 1 打开源码cefclient解决方案 2 确保cefclient例子可以完美运行 3 在cefclient中,除了util.h之外,全部移除 4 manifests 和 resources文件也可以移除(you must re

Windows socket之最简单的socket程序

原文:Windows socket之最简单的socket程序 最简单的服务器的socket程序流程如下(面向连接的TCP连接 ): 1. WSAStartup(); 初始化网络库的使用. 2. socket(); 获得一个socket. 3. bind(); 把获得的socket绑定到一个ip 和端口.既然作为服务器, ip通常为本地IP127.0.0.1. 4. listen(); 监听已经绑定了指定端口的socket. 5. accept(); 接受一个来自客户端的连接. accept()返

windows笔记-一个简单的windows GUI应用程序

#include<windows.h> // 编写Windows程序必须包含的头文件 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 声明窗口函数原型 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ HWND hwnd; // 定义窗口句柄 MSG msg; // 定义一个用来存储消息的变量

盘点那些快速打开windows程序的快捷键

很多时候,快捷键带给我们的不仅仅是快速,还能带给我们一种心灵上的满足感.试想一下,别人都在中规中矩的用鼠标点,一步步慢慢调出所需要程序,而你却可以直接通过一个快捷键就完成了,是不是感觉特别有成就呢?今天就给大家整理了打开windows程序的常用快捷命令,windows系统拥护者的朋友们赶紧来转走收藏吧. 注:开始菜单中的"运行"是通向程序的快捷途径,输入特定的命令后,即可快速的打开Windows的大部分程序. winver检查Windows版本 wmimgmt.msc 打开Window

windows程序如何实现精准定时

有朋友问我,"小兵以太网测试仪"这个软件,是如何控制发包频率的. 我想想,干脆写一篇文章来聊聊这个问题吧. windows下,每当一个程序设定的定时器时间到了,windows会给程序发送一个WM_TIMER消息. 根据著名的windows编程书籍<Windows程序设计>的描述(在第8章), 我们知道,windows的定时器有如下的缺陷: 1. 精度不高 windows98大概是55ms,Windows NT大概是10ms. 2. WM_TIMER消息可能无法及时处理 WM

1.一个简单的OpenGL程序

一.OpenGL介绍 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的. 如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单. 2.强大的可移植性. 微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机). 而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机.各种专

Windows程序调试系列: 使用VC++生成调试信息 转

Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,[email protected], 译自 “Generating debug information with Visual C++”,Oleg Starodumov 出处: http://www.cnblogs.com/itrust/archive/2006/08/17/479603.aspx 引子 当我们使用调试器来调试程序时,我们希望能够单步调试到源代码中,在代码中设置断点,观察变量的值(包括用户自定义的复杂类型的

关于windows程序的学习及思考系列之一

1.窗口类的注册 a.windows程序中最简单的就是创建一个简单的窗口,而窗口程序的创建是基于窗口类的,窗口类决定了处理窗口消息的过程函数. b.一个窗口类可以用于创建多个窗口,也就是说窗口是窗口类的实例对象. c.所有的按钮窗口——包括下按按钮,复选框,单选框——都是基于窗口类来创建的.窗口类为这些窗口定义了窗口过程和一些其他的特性. d.当定义一个窗口的时候,我们还需要定义一些该窗口的特有的附加属性. 创建窗口(也就是创建一个类的实例),首先得先注册一个类,Windows中有Registe