-
-
[未解决,已结帖]
求爆壳,好像是asprotect,需要能过反调试 能过虚拟机 能打断点且正常断下
100.00雪花
-
发表于:
2020-12-4 09:47
3075
-
[未解决,已结帖] 求爆壳,好像是asprotect,需要能过反调试 能过虚拟机 能打断点且正常断下
100.00雪花
NISEC_SKPC.dll
Sksb.dll
这两个DLL加了壳,拖进PEID和ExInfoPe都无法识别壳的类型。DIE报是VMProtect(1.X)[-],但是我想应该没那么简单。
这个壳的特点: 他有两个节asp0和asp1。
loadLibrary的时候,如果是在虚拟机运行或者附加了调试器,会被立即检测到并加载失败。
手动运行再附加到吾爱的OD,能打上断点,但是一旦调用DLL的导出函数,程序会自行剥离出调试器。
他的虚拟机检测也有点牛逼,参照网上改虚拟机的配置都无法过检测,还加载了某大神开源在githut上的驱动,号称可以过VMP3.2的。也被检测出。Windows,ubuntu下安装的虚拟机都没逃过。
DLL和调用DEMO我打了包。
DEMO源代码
typedef void(__stdcall *fnOperateSksbc)(LPCSTR sInputInfo, LPSTR sOutputInfo);
static HMODULE LoadNisecSksbc();
static fnOperateSksbc pOperateSksbc = NULL;
#include<string>
HMODULE LoadNisecSksbc()
{
HMODULE hNisecSksbcDll = GetModuleHandle(TEXT("NISEC_SKPC.dll"));
if (hNisecSksbcDll == NULL)
{
hNisecSksbcDll = LoadLibrary(TEXT("NISEC_SKPC.dll"));
if (hNisecSksbcDll)
{
pOperateSksbc = (fnOperateSksbc)GetProcAddress(hNisecSksbcDll, "OperateDisk");
if (!pOperateSksbc)
{
return NULL;
}
}
else
{
return NULL;
}
}
return hNisecSksbcDll;
}
void CTestOcxDlg::OnBnClickedButton1()
{
CString str;
m_edit.GetWindowText(str);
if ( pOperateSksbc == NULL )
{
LoadNisecSksbc();
}
1 2 3 4 5 6 7 8 9 10 | if ( pOperateSksbc )
{
char szTemp[ 40960 ] = { 0 };
pOperateSksbc((CStringA)(CStringW) str ,szTemp);
MessageBoxA( 0 , szTemp, 0 , 0 );
}
else
{
MessageBoxA( 0 , "加载DLL失败" , 0 , 0 );
}
|
}
链接: https://pan.baidu.com/s/1F05QOQ2T9BPUA6E6sjpd1g 提取码: a9a3
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-12-21 10:21
被yaoyuanzhi编辑
,原因: 11