返回信息流这个,其实现在可以更新的, = =#
下面这个会C的自己回去写写就行(也许有时间效,反正地址经常变):
#define OFFSET 0xFC76
BYTE ori_Jnz[7] = {0x80,0xBD,0xE4,0x00,0x00,0x00,0x01};
BYTE patch_code[7] = {0x80,0xBD,0xE4,0x00,0x00,0x00,0x00};
int main(int argc, char* argv[])
{
Usage();
getch();
int iDNFPid = 0;
iDNFPid = GetPidByName("DNFChina.exe");
if( iDNFPid == 0 )
{
printf("没有检测到\"DNFChina.exe\"进程,请启动DNF登陆器再运行本程序\n");
getch();
exit(1);
}
HMODULE hMod = FindModule(iDNFPid,"DNFChina.exe");
if( hMod == 0x0 )
{
printf("\"DNFChina.exe\"进程模块分析出错\n");
getch();
exit(2);
}
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,iDNFPid);
int iRet = 0;
BYTE ReadBuf[6] = {0};
if( hProc==NULL || hProc==INVALID_HANDLE_VALUE )
{
printf("\"DNFChina.exe\"进程句柄读取出错\n");
getch();
exit(3);
}
if( ReadProcessMemory(hProc,(LPVOID)((DWORD)hMod+OFFSET),&ReadBuf,sizeof(ReadBuf),NULL) )
{
if( 0==memcmp(ReadBuf,ori_Jnz,sizeof(ReadBuf)) )
{
if( WriteProcessMemory(hProc,(LPVOID)((DWORD)hMod+OFFSET),&patch_code,sizeof(patch_code),NULL) )
{
printf("补丁安装成功!...\n");
getch();
goto end;
}
else
{
printf("补丁安装失败,写内存出错\n");
getch();
}
}
if( 0==memcmp(ReadBuf,patch_code,sizeof(ReadBuf)) )
{
printf("补丁已经安装过了!...\n");
getch();
goto end;
}
printf("版本需要更新!...\n");
}
end:
if( hProc != INVALID_HANDLE_VALUE )
CloseHandle(hProc);
return 0;
}
我一弄玩更新度就在这个样子:
直接是400多M
检测一次
还有200多
另外说是下午6点,其实我估计中午差不多就行
这是一条镜像帖。来源:北邮人论坛 / buptdnf / #47197同步于 2013/1/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
BUPTDNF机器人发帖
说实话,我就觉得不该下那个80的新客户端
ColdZenLeft
2013/1/28镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
技术帝,给您跪了,别跟我说您之前写的青龙黄龙脚本也是用c写的,对了,技术帝,能顺便向您求一个黄龙青龙的自动脚本么,我也有一个男街霸,想挂着试试看。。