我也发个PEiD皮肤插件(有码)
昨天hym2008童鞋发了一个叫做 PEID 百变秀 的PEiD皮肤插件,用起来感觉还不错。但用起来有点不爽:第一是皮肤的Nag没去掉,看着不爽;第二就是,PEiD的按钮带着StaticEdge,加了皮肤之后看起来十分别扭。
所以昨天花了点时间自己写了一个,现在发出来给大家玩玩。
使用方法:把Release目录下的所有文件复制到PEiD的插件目录即可。如果想换皮肤的话,替换掉skinh.she文件就好。
当然你也可以自己重新编译一个,这个东西不难。
关键代码说明:
//去掉Nag:
unsigned char *pPatchByte = NULL;
DWORD dwOldProtect = 0;
pPatchByte = (unsigned char*)( (DWORD)hSkinBase + 0x0005059 );
VirtualProtectEx(GetCurrentProcess(),pPatchByte,4,PAGE_EXECUTE_READWRITE,&dwOldProtect);
*pPatchByte = 0x50;
pPatchByte = (unsigned char*)( (DWORD)hSkinBase + 0x0000F36F );
VirtualProtectEx(GetCurrentProcess(),pPatchByte,4,PAGE_EXECUTE_READWRITE,&dwOldProtect);
*pPatchByte = 0x50;
pPatchByte = (unsigned char*)( (DWORD)hSkinBase + 0x000215B2 );
VirtualProtectEx(GetCurrentProcess(),pPatchByte,4,PAGE_EXECUTE_READWRITE,&dwOldProtect);
*pPatchByte = 0x50;
//去掉StaticEdge,首先安装一个WH_CBT,然后在回调函数中这样写:
LRESULT __stdcall CbtProc (
int nCode,
WPARAM wParam,
LPARAM lParam )
{
switch ( nCode ) {
case HCBT_CREATEWND:
{
HWND hWnd = (HWND) wParam;
char szClassName = { 0 };
GetClassNameA( hWnd, szClassName, 40 );
if ( stricmp( szClassName, "Button") == 0 ) {
long ExStyle = GetWindowLongA( hWnd, GWL_EXSTYLE );
if ( ExStyle & WS_EX_STATICEDGE ) {
ExStyle &= ~WS_EX_STATICEDGE;
SetWindowLongA( hWnd, GWL_EXSTYLE, ExStyle );
}
}
}
break;
default:
break;
}
return CallNextHookEx( g_CbtHook, nCode, wParam, lParam );
}
附上效果图:
什么东西 回复 2# qin2556130
就是为了好看咯,没啥实际用途,纯娱乐。 皮肤的插件代码很是喜欢 伟哥。。。螺丝粉店那个位置。。。你懂的 有码的好,可以加精!再加点可以自定义皮肤选择的吧,http://www.52pojie.cn/thread-36563-1-1.html,像海风这种可以让用户自己选择多好~ 回复 6# Hmily
OK,只是最近不是很得空,以后慢慢搞。 有码的好?什么东东?...... 纯支持下!不过对查壳没有什么影响 不明白但也支持下~!