首页
社区
课程
招聘
使用
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-19 21:47
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
这不是好方法,放弃,谢谢前辈们的方法,我另选他路了,结贴
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-19 13:06
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
谢谢你多次指点,在下不才,只会用也用惯了MFC,WPF只下载过只个例程,没深入过

要知道我做的是OllyDbg的插件,若在OllyDbg当前断点或当前eip前后的几行代码中获取到窗口句柄,还要回溯到最顶层窗口,才能对之正常截图,然后对按钮等子控件进行红框闪烁以指示该窗口句柄对应在的控件,但被调试程序被断点断下时,这很容易引起插件不响应
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-19 00:29
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
夜班回家,验证了一下,发现不能对控件如:按钮,编辑框等进行截图,截到的只是等大黑块,列表控件与树控件则正常

这个不知前辈们有何解决之法?
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 19:42
0
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 19:41
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
但该函数的调用有点麻烦,我现在把它包装一下,方便大家使用:
#define PW_CLIENTONLY           0x00000001
//WINUSERAPI BOOL WINAPI PrintWindow(IN HWND hwnd, IN HDC hdcBlt, IN UINT nFlags);

typedef BOOL(FAR WINAPI *PWFUNC)(HWND, HDC, UINT);

BOOL PrintWindow(IN HWND hwnd, IN HDC hdcBlt, IN UINT nFlags)
{
        HMODULE hmod = LoadLibrary("user32.dll");
        PWFUNC PrintWindow = (PWFUNC)GetProcAddress(hmod, "PrintWindow");
        BOOL bReturn = PrintWindow(hwnd, hdcBlt, nFlags);
        FreeLibrary(hmod);
       
        return bReturn;
}
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:41
0
[求助]求一段快速搜索内存的代码
当然用消息钩子钩住你要的进程,再调用上面的函数也可
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:39
0
[求助]求一段快速搜索内存的代码
远程线程注入,确定你搜索的首尾址,然后调用上面的代码即可
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:36
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
感谢二位前辈的无私帮助,我已经搜索到一个参考代码了,也给二位前辈看看:
http://www.programfan.com/CLUB/showtxt.asp?id=281515
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:32
0
[求助]求一段快速搜索内存的代码
该函数的调用片断:
        if(memory)
        {
                memset(memory, 0, mem_len);
               
                //MM_RESTORE: 删除INT3断点
                int ret = Readmemory(memory, mem_address_start, mem_len, MM_RESTORE);
               
                if(ret = 0)
                {
                        return;
                }
               
                int iFind = 0, iStart = 0, nCount = 0;
                CDWordArray AddressArraay;
                DWORD dwAdrressGoto = 0;

                do
                {
                        iFind = ODH.MemFind(iStart, memory, mem_len, a, strSig.GetLength() / 2);

                        if(iFind != -1)
                        {
                                iStart = iFind + 1;

                                char sss[256] = {0};
                                sprintf(sss, "iFind: %d", iFind);
                                OutputDebugString(sss);

                                AddressArraay.Add(iFind + mem_address_start);
                                nCount++;

                                if(nCount > 30)
                                {
                                        break;
                                }
                        }

                }
                while(iFind != -1);
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:29
0
[求助]求一段快速搜索内存的代码
给你一个函数,是我正在写的OD插件中的(VC6),也是网上来的,感谢原作者,但记不清他的名字了,搜索飞快,5M的缓冲,我搜索一个特征码时,鼠标一点就出来了,感觉不出来迟滞:
//////////////////////////////////////////////////////////////////////////
//搜索内存函数
int CODPluginHelper::MemFind(int iStartPosition, LPBYTE pDestBuffer, int iDestBufferLength, LPBYTE pPatternBuffer, int iPatternBufferLength)
{
    signed int iFoundPosition = -1, i = 0;

    if(iStartPosition > iDestBufferLength) return -1;
       
    for(i = iStartPosition; i < (iDestBufferLength + 1); i++)
    {
        if(memcmp(&pDestBuffer[i], pPatternBuffer, iPatternBufferLength) == 0)
        {
            iFoundPosition = i;

                        break;
        }
    }

    return iFoundPosition;
}
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:23
0
[求助]VC中如何将自己编写的DLL集成到自己的exe文件中
给你一个函数,我以前的工程里面的(VC6):
//自释放函数
bool CDirDlg::g_MakeResourceFromExe(CString szExPathName, CString szResName, int nResID)
{
        HRSRC hSrc = FindResource(NULL,MAKEINTRESOURCE(nResID),szResName);
        if(hSrc == NULL) return false;
        HGLOBAL hGlobal = LoadResource(NULL,hSrc);
        if(hGlobal == NULL) return false;
        LPVOID lp = LockResource(hGlobal);
        DWORD dwSize = SizeofResource(NULL,hSrc);
        CFile file;
        if(file.Open(szExPathName,CFile::modeCreate|CFile::modeWrite))
        {
                file.Write(lp,dwSize);
                file.Close();
        }
        FreeResource(hGlobal);
        return true;
}

上面函数的调用:
void CDirDlg::ReleaseExe()
{//从资源中自释放imagedir.exe,自定义资源类型,导入imagedir.exe,ID=IDR_IMAGEDIREXE
        CString szexe = g_szimagedir + "imagedir.exe";
        CFileFind find;
  if(!find.FindFile(szexe))
    g_MakeResourceFromExe(szexe,"exe",IDR_IMAGEDIREXE);
  find.Close();
        //改变imagedir.exe的属性:只读,隐藏,归档
        DWORD dwAttributes = FILE_ATTRIBUTE_HIDDEN |
                FILE_ATTRIBUTE_ARCHIVE |
                FILE_ATTRIBUTE_READONLY;
        SetFileAttributes(szexe,dwAttributes);       
}

以上我是把某个看图软件导入资源了,释放后,双击我软件里的列表控件中的某张图的全称,就能调用该看图全屏显示这张图片了,再在这张图片上双击时,就退出该看图软件

当时是由于编程匆忙,来不及写全屏看图软件了,用EXE自释放,双击全屏再双击就退出,只是欺骗一下用户的眼睛而已
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 18:14
0
[求助]VC中如何将自己编写的DLL集成到自己的exe文件中
添加到资源,用时把它释放出来就可以了
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 17:56
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
OD插件中实现已知一个窗口句柄的抓图,不考虚OpenGL等或窗口属性本来就是DisVisable的情况,能对大多数情况适用就可以了
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 17:42
0
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 17:33
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
Windows NT: Pointer to a null-terminated character string that specifies either "DISPLAY" for a display driver, or the name of a printer driver, which is usually "WINSPOOL".

"WINSPOOL" :是这个吗?
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 17:30
0
[原创]PE资源字符串ID计算方法
在OllyDbg的插件中遍历PE的资源字符串的ID及对应的文本内容功能完全实现

插件现在已实现提取特征码及定位,定位资源字符串的调用地址等功能

想多实现几个功能,功能多了再公布插件代码

在此想请教各位前辈:
已知窗口句柄,但窗口被完全遮挡,能对它抓图吗

没有他意,只是想让插件多一个功能
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-18 17:23
0
[求助]已知窗口句柄,但窗口被完全遮挡,能对它抓图吗
若能抓图,则我的OllyDbg插件又多了一个功能,呵呵
雪    币: 324
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
swqswq 2010-5-15 13:46
0
[原创]PE资源字符串ID计算方法
唉,无人关注,其实......

这是我开发OllyDbg插件时碰到的一个问题:
在反汇编代码窗口中所有引用到的字符串ID,插件都自动都会把对应字符串内容添加到注释中去,并用自动计算该字符串ID有几处交叉引用

还有一个就是:
做到了OllyDbg特征码定位,比如双击列表控件中的静态链接MFC程序"AfxDispatchCmdMsg"的特征码,能马上定位到该函数中去,并且能知道该函数有多少交叉引用,当然你自己的特征码能用插件轻易获取,用在某软件升级时,对比代码时很有用
精华数
RANk
324
雪币
57
活跃值
关注数
粉丝数
0
课程经验
0
学习收益
0
学习时长
基本信息
  能力排名: No.3226
  等    级: LV3
活跃值  活跃值:活跃值
  在线值:
  浏览人数:216
  最近活跃:2020-8-21 12:50
  注册时间:2006-02-17
勋章
能力值

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册