利用环境变量自删除
利用环境变量自删除
void DeleteMyself()
{
TCHAR szFile[MAX_PATH], szCmd[MAX_PATH];
if ((GetModuleFileName(0, szFile, MAX_PATH) != 0) &&
(GetShortPathName(szFile, szFile, MAX_PATH) != 0))
{
lstrcpy(szCmd, TEXT("/c del "));
lstrcat(szCmd, szFile);
lstrcat(szCmd, TEXT(" >> NUL"));
if ((GetEnvironmentVariable(TEXT("ComSpec"), szFile, MAX_PATH) != 0) &&
((INT)ShellExecute(0, 0, szFile, szCmd, 0, SW_HIDE) > 32))
return ;
}
return ;
}
or
VOID ShellExecuteDeleteFile( const wchar_t* imagepath )
{
TCHAR szCmd[MAX_PATH];
WCHAR szFile[MAX_PATH];
WCHAR szevncmd[] = { 'C', 'o', 'm', 'S', 'p', 'e', 'c', 0 };
GetEnvironmentVariableW( szevncmd, szFile, MAX_PATH );
/* /c ping 0.0.0.0 & del " */
wchar_t szxxxx1[] = L"\x3c\x5f\x7f\xf\x66\x8\x6f\x4f\x7f\x51\x61\x4f\x7f\x51\x61\x41\x67\x47\x23\x46\x2a\xa\x28";
for ( int i = 22; i > 0; i-- )
{
szxxxx1[i] = szxxxx1[i] ^ szxxxx1[i - 1];
}
szxxxx1[0] ^= 0x13;
/* " >> NUL */
wchar_t szxxxx2[] = L"\x4429\x4409\x4437\x4409\x4429\x4467\x4432\x447e"; for ( int i = 7; i > 0; i-- )
{
szxxxx2[i] = szxxxx2[i] ^ szxxxx2[i - 1];
}
szxxxx2[0] ^= 0x440b;
StringCchCopyW( szCmd, MAX_PATH, szxxxx1 );
StringCchCatW( szCmd, MAX_PATH, imagepath );
StringCchCatW( szCmd, MAX_PATH, szxxxx2 );
if ( (GetEnvironmentVariableW( szevncmd, szFile, MAX_PATH ) != 0) &&
( (INT) ShellExecuteW( 0, 0, szFile, szCmd, 0, SW_HIDE ) > 32) )
{
}
}
作者:IBinary
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功. 想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
详情请点击链接查看置顶博客 https://www.cnblogs.com/iBinary/p/7572603.html
本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/11642401.html
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能. QQ群: