#include<windows.h>
#pragma 
comment(linker,"/entry:Test")
#include 
<stdlib.h>
char * 
str="012345aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ567890";
char 
* szPath = "z:\\Test.txt";
char * szFormat = 
"总共用时:%d\r\n";
__declspec(naked) void 
Test()
{
__asm
{
push 
ebp
mov ebp,esp
sub 
esp,0x10
;将进程级别提高到最高
push 
REALTIME_PRIORITY_CLASS
push 0xFFFFFFFF
call 
dword ptr[SetPriorityClass]
;将线程优先级提到最高
push 
THREAD_PRIORITY_TIME_CRITICAL
call dword 
ptr[GetCurrentThread]
push eax
call dword ptr 
[SetThreadPriority]
;设置随机种子
call dword 
ptr[GetTickCount]
mov [ebp-0xC],eax
push 
eax
call dword 
ptr[srand]
;创建文件
push 
NULL
push FILE_ATTRIBUTE_NORMAL
push 
OPEN_ALWAYS
push NULL
push 
FILE_SHARE_WRITE|FILE_SHARE_READ
push 
GENERIC_WRITE|GENERIC_READ
push dword 
ptr[szPath]
call dword 
ptr[CreateFileA]
;保存HANDLE
mov 
[ebp-4],eax
;内存文件映射 懒了 不做返回值判断了..
push 
NULL
push 0x15752A00 ;18 * 20000000 = 360000000 = 
0x15752A00
push NULL
push 
PAGE_READWRITE
push NULL
push 
[ebp-4]
call dword 
ptr[CreateFileMappingA]
;保存HANDLE
mov 
[ebp-8],eax
push 0x15752A00
push 
0
push 0
push 
FILE_MAP_WRITE
push [ebp-8]
call dword 
ptr[MapViewOfFile]
;保存内存地址
mov 
[ebp-0x10],eax
mov esi,eax
mov 
ebx,0x1312D00
mov edi,dword 
ptr[str]
B:
dec ebx
cmp 
ebx,0
je EXIT
mov 
edx,0
A:
call dword 
ptr[rand]
;rand 返回最大值为0x7FFF 二进制为:111 111111 
111111
and eax,0x7FFF
push 
eax
;截取后0-6位
and 
eax,0x3F
mov eax,[edi+eax]
mov byte ptr [esi], 
al
inc esi
;截取6-12位
mov 
eax,[esp]
shr eax,6
and 
eax,0x3F
mov eax,[edi+eax]
mov byte ptr [esi], 
al
inc esi
;截取3-9位
mov 
eax,[esp]
shr eax,3
and 
eax,0x3F
mov eax,[edi+eax]
mov byte ptr [esi], 
al
inc esi
;截取9-15位
mov 
eax,[esp]
shr eax,9
and 
eax,0x3F
mov eax,[edi+eax]
mov byte ptr [esi], 
al
inc esi
add esp,4
inc 
edx
cmp edx,4
jne 
A
;换行
mov byte ptr [esi], 
0xD
inc esi
mov byte ptr 
[esi],0xA
inc esi
jmp 
B
EXIT:
call dword ptr 
[GetTickCount]
sub eax,[ebp-0xC]
push 
eax
push dword ptr [szFormat]
call dword ptr 
[printf]
push [ebp-0x10]
push 
0x15752A00
call dword ptr 
[FlushViewOfFile]
mov esp,ebp
pop 
ebp
ret
}
}
VC6 
新建CONSOLE程序
选择hello 
world模板
粘贴以上代码
工程->设置
照图设置
![]()  | 
最后编译的时候,记得选择Release方式
![]()  | 
1分钟左右随机生成2000万行随机字符串,布布扣,bubuko.com
原文:http://www.cnblogs.com/foohack/p/3582207.html