挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 10774|回复: 3
打印 上一主题 下一主题

[分享] OD/CE 过掉TMD壳附加检查

[复制链接]

7

积分

2

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
5
海币
19
交易币
0
跳转到指定楼层
楼主
发表于 2015-8-15 10:49:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


恢复OD进程附加原理


1、恢复DbgBreakPoint和DbgUiRemoteBreakin被HOOK代码


//由于我是使用ntdll SDK,可直接使用NTDLL中的API,如果你们不能使用,直接用GetProcAddress获取API

注意该处的修复,自己可以写个HOOK,放到LoadLibrary,每次加载DLL时候,就处理一次,防止某些DLL还有TMD壳,又会被恢复

ntdll->DbgBreakPoint 被TMD壳修改为retn
-> 0xC3


DWORD lpflOldProtect;
LPVOID ulAddress
= DbgBreakPoint;
VirtualProtect(ulAddress,1,PAGE_EXECUTE_READWRITE,&lpflOldProtect);

*(BYTE*)(ulAddress) =
0xCC;


ntdll->DbgUiRemoteBreakin 被TMD修改为JMP LdrShutdownProcess

ulAddress = DbgUiRemoteBreakin

VirtualProtect(ulAddress,1,PAGE_EXECUTE_READWRITE,&lpProtect);
*(BYTE*)(ulAddress) =
0x6A;
*(DWORD*)((BYTE*)ulAddress+1)= 0xFC686808;

2、修复允许CE的附加

第一步虽然修复了允许附加,但TMD壳本身还自带线程检查ANTI,所以我们要终止掉这些线程


BOOL WINAPI _AhnHS_GetThreadModuleName(char* szModuleName,DWORD szThreadId,LPVOID & StartAddress,HANDLE & hThread)
{
hThread  = OpenThread(THREAD_ALL_ACCESS, FALSE, szThreadId);


if (!hThread) return FALSE;


LONG status
= ZwQueryInformationThread(hThread, ThreadQuerySetWin32StartAddress, &StartAddress, sizeof(StartAddress), NULL);
if(status <0)
{
CloseHandle(hThread);
SetLastError(RtlNtStatusToDosError(status));
return FALSE;
}


return (GetMappedFileNameA(GetCurrentProcess(), StartAddress, szModuleName, MAX_PATH)>=0) ? TRUE : FALSE;
}

void WINAPI _AhnHS_PassThreadByTMD()
{
HANDLE hThreadSnap , hThread;
THREADENTRY32 te32
= {0};
CONTEXT    context
= {0};


hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if ( hThreadSnap == INVALID_HANDLE_VALUE )
return;


memset(&te32, 0, sizeof(THREADENTRY32));
te32.dwSize  = sizeof(THREADENTRY32);


BOOL dwRet
= Thread32First(hThreadSnap, &te32);
DWORD dwCurrentProcessId
= GetCurrentProcessId();


do
{
if (te32.th32OwnerProcessID != dwCurrentProcessId) continue;


char szModuleFileName[MAX_PATH];
LPVOID  StartAddress;


if(!_AhnHS_GetThreadModuleName(szModuleFileName,te32.th32ThreadID,StartAddress,hThread)) continue;


char* pszName
= (strrchr(szModuleFileName,'\\')) ? strrchr(szModuleFileName,'\\')+1 : szModuleFileName;


//AntiHookGetMainThreadId()=主线程ID,可自行修改


if(lstrcmpiA(pszName,AntiHookGetModuleInfo()->AppName)==0 && AntiHookGetMainThreadId()!=te32.th32ThreadID)
{
//远程线程非代码块,为其它检查线程,终止
HMODULE  lib = GetModuleHandleA(pszName);
PIMAGE_NT_HEADERS
nth =  PIMAGE_NT_HEADERS(PBYTE(lib) + PIMAGE_DOS_HEADER(lib)->e_lfanew);
IMAGE_SECTION_HEADER
*pSection =
(IMAGE_SECTION_HEADER*)((DWORD)nth + sizeof(IMAGE_NT_HEADERS));

if((DWORD)StartAddress>(pSection[0].VirtualAddress+(DWORD)lib) && (DWORD)StartAddress<pSection[1].VirtualAddress+(DWORD)lib) continue;

TerminateThread(hThread,0);
}


CloseHandle(hThread);


}while(Thread32Next(hThreadSnap, &te32));


CloseHandle(hThreadSnap);
}

OK,万事大吉,世界清静了



联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:【原创】VMP早期版本逆向还原文档(带完整引擎源码)(更新终章的一半)
下一篇:脱VMP壳的好东西
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

7

积分

2

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
5
海币
19
交易币
0
沙发
 楼主| 发表于 2015-8-15 10:50:48 | 只看该作者
哈哈,自己的沙发自己坐

1

积分

0

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
4
交易币
0
板凳
发表于 2015-10-15 19:26:57 | 只看该作者
有工具么?  传一个呗
4中级会员
306/600

306

积分

106

主题

7

听众
已帮网友解决0 个问题
好评
0
贡献
200
海币
1089
交易币
0
地板
发表于 2015-10-15 23:51:55 | 只看该作者
牛人啊,佩服、佩服。呵呵!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-29 04:46 , Processed in 0.524565 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表