能力值:
( LV5,RANK:60 )
|
-
-
2 楼
#include "stdafx.h"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 头文件
#include <Windows.h>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 导出函数
#pragma comment(linker, "/EXPORT:Detoured=_AheadLib_Detoured,@1")
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 宏定义
#define EXTERNC extern "C"
#define NAKED __declspec(naked)
#define EXPORT __declspec(dllexport)
#define ALCPP EXPORT NAKED
#define ALSTD EXTERNC EXPORT NAKED void __stdcall
#define ALCFAST EXTERNC EXPORT NAKED void __fastcall
#define ALCDECL EXTERNC NAKED void __cdecl
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// AheadLib 命名空间
namespace AheadLib
{
HMODULE m_hModule = NULL; // 原始模块句柄
DWORD m_dwReturn[1] = {0}; // 原始函数返回地址
// 加载原始模块
inline BOOL WINAPI Load()
{
TCHAR tzPath[MAX_PATH];
TCHAR tzTemp[MAX_PATH * 2];
lstrcpy(tzPath, TEXT("detouredOrg"));
m_hModule = LoadLibrary(tzPath);
if (m_hModule == NULL)
{
wsprintf(tzTemp, TEXT("无法加载 %s,程序无法正常运行。"), tzPath);
MessageBox(NULL, tzTemp, TEXT("AheadLib"), MB_ICONSTOP);
}
return (m_hModule != NULL);
}
// 释放原始模块
inline VOID WINAPI Free()
{
if (m_hModule)
{
FreeLibrary(m_hModule);
}
}
// 获取原始函数地址
FARPROC WINAPI GetAddress(PCSTR pszProcName)
{
FARPROC fpAddress;
CHAR szProcName[16];
TCHAR tzTemp[MAX_PATH];
fpAddress = GetProcAddress(m_hModule, pszProcName);
if (fpAddress == NULL)
{
if (HIWORD(pszProcName) == 0)
{
wsprintfA(szProcName, "%d", pszProcName);
pszProcName = szProcName;
}
wsprintf(tzTemp, TEXT("无法找到函数 %hs,程序无法正常运行。"), pszProcName);
MessageBox(NULL, tzTemp, TEXT("AheadLib"), MB_ICONSTOP);
ExitProcess(-2);
}
return fpAddress;
}
}
using namespace AheadLib;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 入口函数
BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hModule);
run_thread();
for (INT i = 0; i < sizeof(m_dwReturn) / sizeof(DWORD); i++)
{
m_dwReturn[i] = TlsAlloc();
}
return Load();
}
else if (dwReason == DLL_PROCESS_DETACH)
{
for (INT i = 0; i < sizeof(m_dwReturn) / sizeof(DWORD); i++)
{
TlsFree(m_dwReturn[i]);
}
Free();
}
return TRUE;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 导出函数
ALCDECL AheadLib_Detoured(void)
{
// 保存返回地址到 TLS
__asm PUSH m_dwReturn[0 * TYPE long];
__asm CALL DWORD PTR [TlsSetValue];
// 调用原始函数
GetAddress("Detoured")();
// 获取返回地址并返回
__asm PUSH EAX;
__asm PUSH m_dwReturn[0 * TYPE long];
__asm CALL DWORD PTR [TlsGetValue];
__asm XCHG EAX, [ESP];
__asm RET;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK GetWndFromPid_EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
DWORD dwpid=*(DWORD*)lParam;
DWORD tempPid=0;
::GetWindowThreadProcessId (hwnd,&tempPid);
if(tempPid==dwpid)
{
char str[256]={0};
::GetWindowTextA(hwnd ,str,255);
if(strstr (str,"P2P终结者"))
{
*(HWND *)lParam =hwnd;
return 0;
}
}
return 1;
}
HWND GetWndFromPid(DWORD dwpid)
{
DWORD hWnd=dwpid;
::EnumWindows(GetWndFromPid_EnumWindowsProc,(LPARAM)&hWnd);
return (HWND )hWnd ;
}
HWND IndexWindow(HWND hWndParent,LPCTSTR lpWindowClassName)
{
TCHAR str[256]={0};
HWND hChild=NULL;
hChild =::FindWindowEx (hWndParent,0,0,0);
while(hChild)
{
if(::GetClassName(hChild,str,sizeof(str)))
{
if(lstrcmp(str,lpWindowClassName)==0)
{
return hChild;
}
}
HWND hRet=IndexWindow(hChild,lpWindowClassName);
if(hRet)return hRet;
hChild =::FindWindowExA (hWndParent,hChild,0,0);
}
return 0;
}
#include <tchar.h>
#include <stdio.h>
void _thread(void )
{
//AfxMDIFrame42s
// AfxFrameOrView42s
// Shell Embedding
// Shell DocObject View
// Internet Explorer_Server
TCHAR file[256]={0};
::GetModuleFileName(NULL ,file,255);
TCHAR *p=NULL;
for(int i=_tcslen(file)-1;i >0;i--)
{
if(file [i]==TEXT('\\'))
{
p=&file[i+1];
break;
}
}
if(_tcsicmp(p,TEXT ("adbrowser.exe"))==0)
{
::ExitProcess(-1);//终止退出后广告进程
return ;
}
TCHAR title[256]={0};
_tcscpy_s (p,64,TEXT("WindowTitle.ini"));
__redo:
::GetPrivateProfileString(TEXT ("MainWindow"),TEXT ("Title"),TEXT("P2P终结者4.21"),title ,255,file);
HWND hMainWnd=NULL;
DWORD t1=::GetTickCount();
while(TRUE )
{
if (hMainWnd ==NULL )
{
hMainWnd =::FindWindowEx(0,0,0,title);
}
if(hMainWnd)
{
HWND hWnd=NULL ;
hWnd =IndexWindow (hMainWnd ,TEXT("Shell Embedding"));
if(hWnd )
{
::CloseWindow (hWnd);
break;
}
}
::Sleep (10);
if(::GetTickCount()-t1>=5*1000)
{
TCHAR s[256]={0};
DWORD pid=::GetCurrentProcessId();
HWND hwnd=GetWndFromPid(pid);
::GetWindowText(hwnd ,s,255);
::WritePrivateProfileString(TEXT ("MainWindow"),TEXT ("Title"),s,file );
goto __redo;
}
}
}
void run_thread(void)
{
::CloseHandle (::CreateThread(NULL ,0,LPTHREAD_START_ROUTINE(_thread ),NULL ,0,NULL ));
}
|
能力值:
( LV9,RANK:450 )
|
-
-
3 楼
支持一下.我一直在跟进酷狗7
酷狗7.1正式版(V7130)更新日志:
增加音量200%功能;
增强乐库页后退按钮功能,记录最近操作;
增加下载专辑自动生成文件夹功能;
自动推送新年节日皮肤;
增强稳定性,修复上一版本其他问题; 清爽版去广告说明:
1、去除主界顶部静态和动态广告
2、去除主界面游戏标签
3、去除右下角手型图标和文字广告链接
4、去除MV播放和暂停广告
5、去除原版一些无用文件
6、去除搜索歌曲时列表下方的"本搜索数据来源于用户P2P共享,酷狗不提供任何音乐文件,有问题请联系 market@kugou.com."提示,以及提示5秒后窗口才消失. 正式清爽版 By 深南大道 改几个跳转完全去除所有广告
Patches
Address Size State Old New Comment
0065F489 6. Active JNZ 0065F55C JMP 0065F55C 去MV载入广告
0065F9A9 6. Active JNZ 0065FA7C JMP 0065FA7C 去MV暂停广告
00689F79 6. Active JNZ 0068A06E JMP 0068A06E 去掉动态置顶广告
0068F5F9 8. Active PUSH EAX JMP 0068F698 去掉静态置顶广告
0068FAAB 6. Active JE 0068FBB6 JMP 0068FBB6 去掉又下脚手型光标和文字广告
00690DE7 6. Active JNZ 00690EBB JMP 00690EBB 去掉置顶广告
00694102 2. Active JNZ SHORT 0069410B JMP SHORT 0069410B 去掉游戏标签
0081C909 4. Active LEA ECX,DWORD PTR SS:[ESP+5C] JMP SHORT 0081C955 去掉搜索歌曲后提示"本搜索数据来源于用户P2P共享,酷狗不提供任何音乐文件,有问题请联系 market@kugou.com."
0082973B 5. Active PUSH 1388 PUSH 0 去掉搜索歌曲后提示停留5秒后才消失
0082DF19 4. Active LEA EAX,DWORD PTR SS:[ESP+58] JMP SHORT 0082DF65 去掉搜索歌曲后提示"本搜索数据来源于用户P2P共享,酷狗不提供任何音乐文件,有问题请联系 market@kugou.com."
0082E09F 4. Active LEA EDX,DWORD PTR SS:[ESP+38] JMP SHORT 0082E0EB 去掉搜索歌曲后提示"本搜索数据来源于用户P2P共享,酷狗不提供任何音乐文件,有问题请联系 market@kugou.com."
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
深南大道???我貌似某个时间还下载过带这个标签的版本啊....呵呵
破解一下KTV唱歌软件吧...酷我K歌...里面歌曲太少了..哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
支持原创 + 分享
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
老大,把Patch发出来啊,免得我还要一个一个去敲地址
|
能力值:
( LV12,RANK:440 )
|
-
-
7 楼
好帖子呀,多谢楼主的分享。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
太好了,正需要这个,学习学习。
|