启动控制面板中的applet时的一点笔记

本文详细介绍了卸载360软件的多种方法,包括使用MSI安装产品、配置产品、复制并运行uninst.exe、添加计划任务、注入代码运行、以及通过WMI开启进程等,并分析了每种方法的适用性和潜在风险。同时,通过控制面板的rundll32.exe进程展示了卸载程序的调用机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卸载360

 

1. msiInstallProduct  MsiConfigureProduct   //参数中需要360的product code, 找不到

2. 把explore复制到桌面通过 参数运行 uninst.exe    //报风险程序

3. 把explore复制重命名到桌面 运行 uninst   //提示文件下载框,可以运行。

4. 添加计划任务运行 uninst.exe     //报文件修改计划任务

5. 注入explore代码 运行 uninst.exe   // 可以正常卸载360,出现卸载框。

6. 通过wmi开启进程运行 uninst.exe  //报毒

7. ShellExecute,WinExec,CreateProcess  //报毒


控制面板:
比如运行添加删除程序
会启动一个rundll32.exe进程,命令行为 

'"C:\WINDOWS\system32\rundll32.exe" C:\WINDOWS\system32\shell32.dll,Control_RunDLL "C:\WINDOWS\system32\appwiz.cpl",添加或删除程序'
 

kernel32!BaseProcessStart->rundll32!_ModuleEntry->rundll32!WinMainT->SHELL32!Control_RunDLLW->SHELL32!CPL_RunMeBaby->SHELL32!CPL_CallEntry->appwiz!CPlApplet->appwiz!ARP->开始每个applet窗口得而消息循环。
 

xp中的appwiz添加删除程序选择删除哪一个是通过Uninstall_UninstallCurrentItem函数中,给listbox发送一个LB_GETCURSEL消息.
 

在CPL_CallEntry函数中,通过LPCPLMODULE结构,这是个函数指针,指向了每个applet的入口函数,比如添加删除程序的appwiz!CPlApplet。

这个指针在_InitializeCPLModule函数中通过给listbox发送一个LB_GETCURSEL消息.

pcplm->lpfnCPL32 = (APPLET_PROC)GetProcAddress(pcplm->minst.hinst, c_szCPLApplet);得到。

在control1.c中static char const c_szCPLApplet[]  = "CPlApplet";即每个applet dll 的 CPlApplet函数.

--写于2013-10-22

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值