╱Romance. 发表于 2016-7-2 22:10:47

我也发个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 );
}



附上效果图:











页: [1]
查看完整版本: 我也发个PEiD皮肤插件