flashget去广告

    破解这东西对我来说太难,我也只是不想看广告而已。

   至于注册菜单,用vc把它删了就是。

代码如下:

#include <windows.h>
#include <stdio.h>

int set_dir(void)
{
    char temp[512];
    if(!GetModuleFileName(0,temp,500))
    {
        MessageBox(0,temp,"GetModuleFileName",0);
     return -1;
    }
    *strrchr(temp,'//')=0;
    if(!SetCurrentDirectory(temp))
    {
        MessageBox(0,"SetCurrentDirectory",0,0);
     return -1;
    }
    return 0;
}   

int clear_ad(void)
{
    char temp[512];
    if(!GetCurrentDirectory(500,temp))
    {
        MessageBox(0,"GetCurrentDirectory",0,0);
     return -1;
    }
    
    strcat(temp,"//ads//cache434//*.*");
    SHFILEOPSTRUCT op;
    op.hwnd=0;
    op.wFunc=FO_DELETE;
    op.pFrom=temp;
    op.pTo=0;
    op.fFlags=FOF_SILENT|FOF_NOERRORUI|FOF_NOCONFIRMATION;
    op.fAnyOperationsAborted=0;
    op.hNameMappings=0;
    op.lpszProgressTitle=0;
    SHFileOperation(&op);
    return 0;
}   

int inject_timer(HANDLE proc)
{
    void *ra,*rm;
    HINSTANCE kern;
    char tw[]="flashget.dll";
     
    kern=GetModuleHandle("kernel32"); 
    if(!kern) return -1;
    ra=GetProcAddress(kern,"LoadLibraryA");
    if(!ra) return -1;
     
    rm=VirtualAllocEx(proc,0,4096,
        MEM_COMMIT,
        PAGE_EXECUTE_READWRITE);
    if(!rm) return -1;
    DWORD b;
    if(!WriteProcessMemory(proc,rm,tw,sizeof(tw),&b))
    {
        VirtualFreeEx(proc,ra,0,MEM_RELEASE);
        return -1;
    }
     
    if(!CreateRemoteThread(proc,0,0,ra,rm,0,&b))
    {
        VirtualFreeEx(proc,ra,0,MEM_RELEASE);
        return -1;   
    }
     
    VirtualFreeEx(proc,ra,0,MEM_RELEASE);
    CloseHandle(proc);
    return 0;
}   

int exec_flashget(char *cmd)
{
    SHELLEXECUTEINFO sei;
    memset(&sei,0,sizeof(sei));
    sei.cbSize=sizeof(sei);
    sei.fMask=SEE_MASK_NOCLOSEPROCESS;
    sei.hwnd=0;
    sei.lpVerb="open";
    sei.lpFile="flashget2.exe";
    sei.lpParameters=cmd;
    sei.nShow=SW_MINIMIZE;
    sei.lpDirectory=0;
   
    if(ShellExecuteEx(&sei))
    {
        if(sei.hProcess);
         inject_timer(sei.hProcess);
        return 0;
    }  
    MessageBox(0,"exec flashget",0,0);
    return -1;
}   

int hide_ad_bar(void)
{
    HWND flash_get=NULL;
    HWND tool_bar=NULL;
    DWORD now=GetTickCount();
    while(!flash_get&&((GetTickCount()-now)<100000))
    {
     flash_get=FindWindow("JetCar Class",0);
    }    
    if(!flash_get)
    {
        MessageBox(0,"FindWindow JetCar",0,0);
        return -1;
    }
    now=GetTickCount();  
    while(!tool_bar&&((GetTickCount()-now)<1000))
    {
     tool_bar=FindWindowEx(flash_get,0,"AfxWnd42s",0);
    }    
    if(!tool_bar)
    {
        MessageBox(0,"FindWindow toolbar",0,0);
        return -1;
    }   
    ShowWindow(tool_bar,SW_HIDE);
    Sleep(1000);   
    ShowWindow(flash_get,SW_RESTORE);
    ShowWindow(flash_get,SW_MAXIMIZE);
    SetForegroundWindow(flash_get);
    return 0;
}

DWORD WINAPI timer(LPVOID p)
{
    HWND hwnd,parent;
    int b=0;
    int i=0;
   
    while(1)
    {
        if(!(i=(i+1)%120))
         clear_ad();
     
        hwnd=parent=0;    
     parent=FindWindow("Afx:400000:0",0);
     if(!parent) b=0;
     if(parent) hwnd=FindWindowEx(parent,0,"AfxWnd42s",0);
     if(hwnd)
      {
          if(b==0)
          {
           ShowWindow(hwnd,SW_HIDE);
           ShowWindow(parent,SW_HIDE);
           ShowWindow(parent,SW_MAXIMIZE);
           b=1;
       }   
        }     
     Sleep(1000);
    }    
}   

int WINAPI DllMain(HINSTANCE hInst,DWORD reason,void *resv)
{
    switch(reason)
 {
  case DLL_PROCESS_ATTACH:
  {
      DWORD tid;
      if(0!=set_dir())
      {
          MessageBox(0,"set dir",0,0);
           return FALSE;
      }
      CreateThread(0,0,timer,0,0,&tid);
   break;
  }
  case DLL_PROCESS_DETACH:
  {
   break;
  }
  default:
  {
   break;
  }
 }
 return TRUE;
}   

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR cmd,int show)
{          
    if(0!=set_dir())
    {
        MessageBox(0,"set dir",0,0);
        return -1;
    }   
    if(0!=clear_ad())
    {
        MessageBox(0,"clear ad",0,0);
        return -1;
    }
    if(0!=exec_flashget(cmd))
    {
        MessageBox(0,"exec flashget",0,0);
        return -1;
    }   
    if(0!=hide_ad_bar())
    {
        MessageBox(0,"hide ad bar",0,0);
        return -1;
    }
    return 0;
}   

 

用vc把这个文件编译为flashget.dll, flashget.exe即可,把它们放到flashget的目录下,之前把原来的flashget.exe改为flashget2.exe.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值