|
[原创]一种保护应用程序的方法 模拟Windows PE加载器,从内存资源中加载DLL
好贴,果断学习。膜拜楼主啊。 |
|
求个按键记录软件 。装在女神电脑上用。
我是来围观楼主图像的。 |
|
[原创]丢一个驱动层拦截web访问源码
无法下载。 |
|
[原创]解决C++“在构造函数中调用构造函数”的问题
呵呵,欣赏一下。 |
|
|
|
[原创]安卓屏幕解锁破解改良版(VC++6)
效率,就喜欢在效率上加强。很不错。顶下。 |
|
[原创]Android屏幕解锁图案破解 C++代码
这个果断要顶下。 |
|
[转帖]苹果发致中国消费者信 就沟通不足道歉
一直都是诺基亚,现在还是那种不能看Video的那种,勉强看看彩信。所以 各种无压力,关于售后问题,我就免了,都用了好几年了。甩了N次,掉洗脚盆。各种折磨。还没死。。。 |
|
[求助]关于一个简单的SSDT恢复问题
这种情况可以试着 在它HOOK的地址上跳转到原来的 SSDT 地址。 |
|
[求助] 收藏 PrintWindow 截图为什么黑屏呢,vc++,VB却可以。。谢谢
对了,之前还写过可以截屏 已经最小化的窗口。晚上回去给你找找。 |
|
[求助] 收藏 PrintWindow 截图为什么黑屏呢,vc++,VB却可以。。谢谢
以前写过这方面代码,实现截屏。 BOOL _ScreenCapture(HBITMAP &_hBitmap,LPCSTR lpFileName) { HDC hDC = GetDC(GetDesktopWindow()); if (hDC == NULL){ return FALSE; } int BitPerPixel = GetDeviceCaps(hDC,BITSPIXEL); int Width = GetDeviceCaps(hDC,HORZRES); int Height = GetDeviceCaps(hDC,VERTRES); HDC memDC = CreateCompatibleDC(hDC); if (memDC == NULL){ return FALSE; } HBITMAP hBitmap = CreateCompatibleBitmap(hDC, Width, Height); if (hBitmap == NULL){ DeleteDC(memDC); return FALSE; } HBITMAP hOldBitmap = (HBITMAP)SelectObject(memDC,(HGDIOBJ)hBitmap); if(hOldBitmap == NULL){ DeleteDC(memDC); return FALSE; } if(BitBlt(memDC,0, 0, Width, Height, hDC, 0, 0, SRCCOPY) == 0){ DeleteDC(memDC); return FALSE; } BITMAP bmp; GetObject(hBitmap, sizeof(BITMAP), &bmp); BITMAPINFOHEADER bih = {0}; bih.biBitCount = bmp.bmBitsPixel; bih.biCompression = BI_RGB; bih.biHeight = bmp.bmHeight; bih.biPlanes = 1; bih.biSize = sizeof(BITMAPINFOHEADER); bih.biSizeImage = bmp.bmWidthBytes * bmp.bmHeight; bih.biWidth = bmp.bmWidth; BITMAPFILEHEADER bfh = {0}; bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); bfh.bfSize = bfh.bfOffBits + bmp.bmWidthBytes * bmp.bmHeight; bfh.bfType = (WORD)0x4D42; UINT uHeadSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); UINT uSize = bmp.bmWidthBytes * bmp.bmHeight + uHeadSize; char *pBuf = new char[uSize]; if (pBuf == NULL){ DeleteObject((HGDIOBJ)hBitmap); DeleteDC(memDC); return FALSE; } char *pTmp = pBuf; memcpy(pTmp, &bfh, sizeof(BITMAPFILEHEADER)); pTmp += sizeof(BITMAPFILEHEADER); memcpy(pTmp, &bih, sizeof(BITMAPINFOHEADER)); pTmp += sizeof(BITMAPINFOHEADER); GetDIBits(memDC,hBitmap,0,Height,pTmp,(LPBITMAPINFO) &bih,DIB_RGB_COLORS); if (lpFileName != NULL){ HANDLE hFile = CreateFileA( lpFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if ( hFile == INVALID_HANDLE_VALUE ){ DeleteDC(memDC); delete pBuf; return FALSE; } DWORD dwWrite = 0; if(!WriteFile(hFile,pBuf,uSize,&dwWrite,NULL)){ DeleteDC(memDC); delete pBuf; return FALSE; } CloseHandle(hFile); } SelectObject(memDC,(HGDIOBJ)hOldBitmap); DeleteDC(memDC); _hBitmap = hBitmap; delete pBuf; return TRUE; } BOOL _ScreenCaptureBitmap(HBITMAP &_hBitmap,LPCSTR lpFileName) { BOOL bFlag = FALSE; _hBitmap = NULL; HWINSTA hwinstaLsass = GetProcessWindowStation(); if(hwinstaLsass != NULL) { HDESK hdeskLsass = GetThreadDesktop( GetCurrentThreadId() ); if(hdeskLsass != NULL) { HWINSTA hwinstaUser = OpenWindowStationA("WinSta0", FALSE, MAXIMUM_ALLOWED); if(hwinstaUser != NULL) { if(SetProcessWindowStation(hwinstaUser)) { HDESK hdeskUser = OpenDesktopA("Default", 0, FALSE, MAXIMUM_ALLOWED); if(hdeskUser != NULL) { if(SetThreadDesktop(hdeskUser)) { bFlag = _ScreenCapture(_hBitmap,lpFileName); SetThreadDesktop(hdeskLsass); } CloseDesktop(hdeskUser); } SetProcessWindowStation(hwinstaLsass); } CloseWindowStation(hwinstaUser); } } } return bFlag; } BOOL _FreeScreenBitmap(HBITMAP &_hBitmap) { if (_hBitmap != NULL && _hBitmap != (HBITMAP)0xCCCCCCCC){ DeleteObject((HGDIOBJ)_hBitmap); _hBitmap = NULL; return TRUE; } return FALSE; } |
|
[讨论]“逆向分析师”职位
不知道你对这个职位怎么看? |
|
[讨论]“逆向分析师”职位
小弟在这里向各位问好,这里有个疑问困扰着我,还请大家帮忙谈谈自己的想法。谢谢 小弟刚工作一年,对逆向破解这方面比较感兴趣,有家公司让我去面试“逆向分析师”这一职位,我不知道这样的职位有多大的发展空间?也不知道他们能给到多少的待遇,前景如何? 还请大家有经验的大牛们给点提示。小弟在此谢过。 大家就谈谈这样的工作前景吧。 ps:如果发错了版块,还请版主帮忙调整,谢谢。 |
|
[求助]IDT HOOK 问题,请大家帮忙。
多谢您的赐教。 我只是觉得有点奇怪,因为我之前看过人家这么写HOOK IDT int3 函数可以的。 我经过测试,就是到了PsGetCurrentProcess 这出问题的。 多谢你的提醒,其实 不是PsGetCurrentProcessId 的问题,我只是觉得奇怪。我还是再来调试看看。。 |
|
[原创]LDR链调试手记
膜拜大神,强势学习啊。 |
|
[推荐]《游戏外挂攻防艺术》(游戏外挂内幕首度解密 国内唯一相关权威著作)
不管怎么样,还是顶一下。 虽然看了 第一 和第五章 都是写我知道的技术,但是还是很佩服作者发大力气写出来。 不管多少牛人怎么评价,但却都没能把自己的思路写出来,就算你的思路更好更精湛,觉得这本书没什么技术含量,但是你不能分享出来,就没资格批评人家。如果书中存在什么问题,指出来却是不错的选择。 市面上大部分的书都是以入门为主,尤其技术这方面,俗话说:师傅领进门,修行在个人。 |
|
[求助]IDT HOOK 问题,请大家帮忙。
你好,很高兴你能回答我的问题。 我的想法是这样:通过HOOK int 3 中断表中的处理函数 来实现某些指定PID的程序无法中断。 也就是 当某个程序触发int 3 中断 程序则会转到 系统的int 3处理函数执行,我通过在这个处理函数上设置个跳转,判断是否为我关心的进程ID,如果是则调试终止。如果不是则直接跳到原来的处理函数执行。 不知道我表述的是否清楚。 现在的问题主要就是 调用到PsGetCurrentProcess这个函数后就直接卡死。为此我单独测试的这个函数。 之前记得 有人这么用是可以的。不知道为什么我这不行。 对于 您说的 “为什么要paged code?此时一定低于DISPATCH_LEVEL么?” 这个疑问,其实我 就行节约内存资源,也没想那么多,直接在函数前面加上了这句。看来 以后要多注意了,谢谢提醒。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值