-
-
[未解决,已结帖] [悬赏][求助]TEB_PEB_断链隐藏自身DLL;只断一链,却是BUG频出,以头晕脑胀 10.00雪花
-
发表于: 2017-5-20 16:47 2105
-
贴上一段代码与工程附件,大牛帮我把附件改好,我调试后完成就结帖.因老师不给用结构体,大牛就不要用了哈.
我逻辑已尽混乱了,也改越乱
void YinCang(HWND hwndDlg) { void* XiaYiGe=NULL; void* KaiShi=NULL; void* ShangYiGe=NULL; void* DLLname=NULL; char szDuoZiJie[20]={0}; char szXuHao[1]={0}; int a=0; __asm { mov eax,fs:[0x30]; mov eax,[eax+0xc]; mov edx,[eax+0xc]; mov KaiShi,edx; } //************************************** HWND hListViewCtl=GetDlgItem(hwndDlg,IDC_LIST1); LVITEM lvi={0}; lvi.mask=LVIF_TEXT; XiaYiGe=KaiShi; XiaYiGe=*((void**)XiaYiGe);//跳过EXE while(KaiShi!=XiaYiGe) { ShangYiGe=XiaYiGe; DLLname=*((void **)((unsigned char*)XiaYiGe+0x30)); if (DLLname==0) { XiaYiGe=*((void**)XiaYiGe); *(void**)ShangYiGe=*((void**)XiaYiGe); return ; } wcstombs(szDuoZiJie,(const unsigned short *)DLLname,sizeof(szDuoZiJie));//宽字符转多字符 if (!strcmp(acBuffer,szDuoZiJie)) { XiaYiGe=*((void**)XiaYiGe); *(void**)ShangYiGe=*((void**)XiaYiGe); DLLname=*((void **)((unsigned char*)XiaYiGe+0x30)); wcstombs(szDuoZiJie,(const unsigned short *)DLLname,sizeof(szDuoZiJie));//宽字符转多字符 continue; } lvi.iItem=a++; itoa(a,szXuHao,10); lvi.pszText=szXuHao; lvi.iSubItem=0; ListView_InsertItem(hListViewCtl,&lvi);//添加序号 //*************************************************************** printf("DLL: %s\n",szDuoZiJie); lvi.pszText=szDuoZiJie; lvi.iSubItem=1; ListView_SetItem(hListViewCtl,&lvi);//添加DLL名称 XiaYiGe=*((void**)XiaYiGe); } }
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
谁下载
无
看原图
赞赏
雪币:
留言: