加载 WCP
来源:互联网 发布:怎么在淘宝上实名认证 编辑:程序博客网 时间:2024/04/27 20:55
加载 WCP
功能:
加载WCP.DLL,初始化几个函数:
//----- (1008CBD0)--------------------------------------------------------
signed int __userpurge WcpLoad@<eax>(
const unsigned__int16 *a1@<ecx>,
const unsigned__int16 *a2,
int a3,
HINSTANCE *a4)
{
lpLibFileName = 0;
v4 =a1;
v5 =0;
v6 =wcslen(v4);
if (v6 ==-8)
{
v8 =0;
}
else
{
v5 =v6 +8;
v7 =operator new(2* (v6 + 8) +4);
*v7=0;
v8 =(WCHAR*)(v7+ 4);
*(_DWORD*)v7= v5;
lpLibFileName = v8;
*v8=0;
}
v9 =0;
v10 =v5;
while (*v8)
{
++v8;
if (!--v10)
goto LABEL_65;
}
if (!v10)
{
LABEL_65:
v9 =-2147024809;
LABEL_66:
v11 =0;
goto LABEL_13;
}
v11 =v5 - v10;
LABEL_13:
if (v9 <0)
goto LABEL_119;
v46 =0;
v12 =(char*)&lpLibFileName[v11];
v13 =v5 - v11;
if (v5 == v11)
goto LABEL_67;
v14 =v11 + v13-v5 +2147483646;
v15 =(char*)v4-v12;
while (v14 )
{
v16 =*(_WORD*)&v12[v15];
if (!v16)
break;
*(_WORD*)v12=v16;
--v14;
v12 +=2;
if (!--v13)
goto LABEL_67;
}
if (v13 )
{
v9 =v46;
}
else
{
LABEL_67:
v12 -=2;
v9 =-2147024774;
}
*(_WORD*)v12= 0;
if (v9 <0)
{
LABEL_119:
CBSWdsLog(0x4000000u,v9, 1, "Failed toconcat string.");
v18 =lpLibFileName;
goto LABEL_42;
}
v17 =0;
v46 =0;
if (!v5||v5 >0x7FFFFFFF)
{
v17 =-2147024809;
v46 =-2147024809;
}
v18 =lpLibFileName;
if (v17 <0)
goto LABEL_71;
v17 =0;
v19 =v5;
v46 =0;
v20 =lpLibFileName;
if (!v5)
goto LABEL_70;
while (*v20)
{
++v20;
if (!--v19)
goto LABEL_70;
}
if (!v19)
{
LABEL_70:
v17 =-2147024809;
v46 =-2147024809;
LABEL_71:
v21 =0;
goto LABEL_32;
}
v21 =v5 - v19;
LABEL_32:
if (v17 >=0)
{
v46 =0;
v22 =(char*)&lpLibFileName[v21];
v23 =v5 - v21;
if (v5 == v21)
goto LABEL_72;
v24 =v21 + v23-v5 +2147483646;
v25 =(char*)((char*)L"wcp.dll"- v22);
while (v24 )
{
v26 =*(_WORD*)&v25[(_DWORD)v22];
if (!v26)
break;
*(_WORD*)v22=v26;
--v24;
v22 +=2;
if (!--v23)
goto LABEL_72;
}
if (!v23)
{
LABEL_72:
v22 -=2;
v46 =-2147024774;
}
v18 =lpLibFileName;
*(_WORD*)v22= 0;
}
v9 =v46;
// v28 v29 是 wcp.dll的实例句柄
v28 =LoadLibraryW(v18);
v29 =v28;
vpfnSetIsolationIMalloc = GetProcAddress(v28,"SetIsolationIMalloc");
vpfnGetIdentityAuthority = GetProcAddress(v29,"GetIdentityAuthority");
vpfnGetSystemStore = GetProcAddress(v29,"GetSystemStore");
vpfnOpenExistingOfflineStore = GetProcAddress(v29,"OpenExistingOfflineStore");
vpfnWcpInitialize = GetProcAddress(v29,"WcpInitialize");
vpfnWcpShutdown = GetProcAddress(v29,"WcpShutdown");
vpfnWcpSetHelperCallback =(__int32(__stdcall*)(struct ICBSHelper*))GetProcAddress(v29,"WcpSetHelperCallback");
vpfnWcpSetHelperCallback((struct ICBSHelper*)&vCsiHelper);
v32 =(int(__stdcall*)(int*))vpfnWcpInitialize;
if (!vpfnWcpInitialize|| gulpWcpCookie )
{
LABEL_56:
hLibModule =v29;
goto LABEL_57;
}
v46 =0;
v33 = vpfnWcpInitialize(&v46);
v27 =v33;
if (_InterlockedCompareExchange((volatile signed__int32*)&gulpWcpCookie,v46,0) )
{
v43 =v46;
vpfnWcpShutdown (v43);
}
LABEL_57:
if (lpLibFileName )
operator delete((void*)(lpLibFileName-2));
return v27;
}
// 100023C0: using guessed type wchar_taWcp_dll[8];
// 1019B5BC: using guessed type __int32 (__stdcall*vpfnWcpSetHelperCallback)(struct ICBSHelper *);
// 1019B8A0: using guessed type int vCsiHelper;
// 1019BA9C: using guessed type unsigned __int32gulpWcpCookie;
- 加载 WCP
- 解读 WCP
- WCP初体验
- 解读 WCP 环境
- Windows::WCP::Implementation::CAllocationPool
- WCP 导出函数
- CentOS7下 ”wcp知识库系统“环境搭建
- WCP 新版本中多了几个新的导出函数
- weblogic启动错误 ClassNotFoundException: com.bea.wcp.sip.management.descriptor.beans.SipServerBean
- 加载
- 加载
- 加载
- 加载
- 加载
- 加载
- 加载
- 动态加载加载FLASH.
- 延迟加载--懒加载
- Android中的指纹识别
- mysql 特殊函数
- 关于Java并发编程的总结和思考
- RocketMQ配置简介
- java类中方法和变量的定义顺序
- 加载 WCP
- Java回收对象的标记 和 对象的二次标记过程
- Socket ServerSocket
- 基础练习 闰年判断
- hadoop学习笔记之前期准备 主机通过ssh连接ubuntu虚拟机
- Android应用程序安装过程解析(源码解析)
- 结构体、共用体和枚举之选票统计
- git push origin master报错【及】MERGE_HEAD exists报错解决办法
- 开源cocos2d-x编辑器 qco-editor