Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService

内网权限维持——利用windows注册表 windows自启动是指windows系统在启动时会自动允许一些程序或服务,这些程序要么是windows自带的,要么是用户安装的第三方程序。在注册表中,windows自启动程序或服务注意存储在。是windows系统的组件,用于处理与用户有关的各种行为,如扽古路、注销、在登陆时加在配置文件、锁定屏幕等。中,并执行下面命令,通过编辑注册表安装一个端口监视器。中放了一个计算器,注销后重新登录,也会弹计算器。下的注册表的修改下会应用于系统中的所有用户;下的注册表的修改只应用于当前用户。进程,以实现相应的功能。 阅读详情

Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService  

 

1. atiSysService1

2. atiSysService  原理1

3. Java code1

4. 参考5

 

1. atiSysService  

http://localhost:8080/regsitMana/listServices.html

 

 

 

2. atiSysService  原理

使用JRegistry读取服务列表

此外,读取中文属性值的ucs2的属性读取。

启动类型String roottype = "1:man,2:auto,3:manType3,4:disable";

 

作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

3. Java code

package aaaAddr;

 

import java.util.List;

import java.util.Map;

 

import jdk.nashorn.internal.ir.Terminal;

 

import com.attilax.json.AtiJson;

import com.attilax.lang.YamlAtiX;

import com.attilax.lang.text.strUtil;

import com.google.common.collect.Lists;

import com.google.common.collect.Maps;

import com.registry.RegistryKey;

import com.registry.RegistryValue;

 

/** aaaAddr.SysServiceUtil.getList

 * @author digdeep@126.com

 */

public class SysServiceUtil {

// "HKEY_LOCAL_MACHINE"

public static final RegistryKey LOCALMACHINE = RegistryKey

.getRootKeyForIndex(RegistryKey.HKEY_LOCAL_MACHINE_INDEX);

 

// "HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"

public static final RegistryKey rdpKey = null;

 

// = new RegistryKey(LOCALMACHINE,

// "\System\CurrentControlSet\Control\Terminal

// Server\WinStations\RDP-Tcp\");

 

/**

 * 获得 windows server 中的 terminal server 的端口 也就是远程桌面服务的端口

 *

 * @return

 */

public static long getTerminalServerPort() {

long port = -1;

 

if (rdpKey.hasValues()) {

RegistryValue portNumber = rdpKey.getValue("PortNumber");

System.out.println(portNumber.toString()); // Name: PortNumber Type:

// REG_DWORD Value: 3389

String value = portNumber.toString();

port = Long.valueOf(value.substring(value.lastIndexOf(": ") + 2));

System.out.println("port: " + port);

}

 

return port;

}

 

public static void main(String[] args) {

 

SysServiceUtil sysx = new SysServiceUtil();

List li = sysx.getList();

System.out.println(AtiJson.gson(li));

 

}

 

/**

 * attilax 2016年4月12日 下午2:35:10

 *

 * @return

 */

@SuppressWarnings("all")

public List getList() {

// getTerminalServerPort();

String roottype = "1:man,2:auto,3:manType3,4:disable";

Map roottype_m = YamlAtiX.getMap_fromTxt(roottype);

RegistryKey k = new RegistryKey(LOCALMACHINE,

"SYSTEM\\CurrentControlSet\\services");

//todox  drektly use fullpath se ,get retu is empty in get subkey..zihao use jeig locamacie var mode..

// System.out.println( AtiJson.toJson(k));

/*

 *

 * { "hKey": -2147483647, "name": "services", "path":

 * "HKEY_CURRENT_USER\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet",

 * "handles": [], "created": false, "level": 4, "lastError": 0,

 * "view64": 256 }

 */

// k.g

List<RegistryKey> li = k.getSubKeys();

// k.getSubKeys(".NETFramework")

// k.getSubKeyNames()

// k.getNumberOfSubKeys()

System.out.println(li.size());

List<Map> li_r = Lists.newLinkedList();

int i = 0;

for (RegistryKey registryKey : li) {

try {

i++;

System.out.println(i);

// System.out.println( AtiJson.toJson(registryKey));

System.out.println(registryKey.getName());

if (registryKey.getName().equals("AcpiPmi"))

System.out.println("dbg");

Map m = Maps.newLinkedHashMap();

if (registryKey.getValue("Description") != null) {

RegistryValue v = registryKey.getValue("Description");

 

byte[] byteData = v.getByteData();

// Object s = strUtil.from_wz_encode( byteData,"gbk");

Object s = strUtil.from_wz_encode(byteData,

"UnicodeLittleUnmarked");

m.put("Description", s);

}

 

m.put("name", registryKey.getName());

if (registryKey.getValue("DisplayName") != null) {

 

RegistryValue v = registryKey.getValue("DisplayName");

// v.getName() ==DisplayName

// v.toString()

byte[] byteData = v.getByteData();

Object s = strUtil.from_wz_encode(byteData,

"UnicodeLittleUnmarked");

 

m.put("DisplayName", s);

 

}

if (registryKey.getValue("ImagePath") != null)

m.put("ImagePath", strUtil.from_wz_encode(registryKey

.getValue("ImagePath").getByteData(),

"UnicodeLittleUnmarked"));

 

m.put("Start", getReg_dword(registryKey.getValue("Start") ));

if(m.get("Start")!=null)

m.put("StartTxt", roottype_m.get(m.get("Start")));

 

// //if DelayedAutostart=1 and auto ,then auto delaye start

 

m.put("DelayedAutostart",getReg_dword(registryKey.getValue("DelayedAutostart") ));

 

li_r.add(m);

 

} catch (Exception e) {

e.printStackTrace();

}

 

//

}

System.out.println("--ok");

 

return li_r;

}

 

/**

attilax    2016年4月12日  下午4:59:53

 * @param string

 * @return

 */

private Object getReg_dword(RegistryValue  regVal) {

if (regVal != null) {

byte[] a=regVal

.getByteData();

return strUtil.from(a[0]);

}

return regVal;

}

 

4. 参考

 

Java 使用 JRegistry-1.8.1 读取和设置 windows 注册表_小组_ThinkSAAS.html

}

 

JRegistry-1.8.1 的使用 Java操作注册表最新原创中文资料】_明明如月_新浪博客.html

CRMEB小程序订阅消息实战指南:PHP配置与疑难排查 本文提供CRMEB小程序订阅消息的完整实战指南,重点解析PHP环境下的配置流程与常见错误解决方法。文章从订阅消息的核心规则讲起,详细拆解了从微信后台获取模板到CRMEB后台完成字段映射的关键步骤,并提供了从用户授权、缓存清除到服务器日志检查的逐层排查方案,帮助开发者高效打通消息通道,避免常见配置陷阱。 阅读详情

相关推荐

ANSYS Workbench接触分析实战:从算法选择到收敛难题破解

本文深入解析ANSYS Workbench接触分析的核心技术与实战技巧,涵盖四大接触算法选择、收敛难题破解秘籍及典型场景参数设置。通过实际案例演示如何优化接触刚度、pinball区域和非对称行为等关键参数,帮助工程师有效解决结构非线性问题,提升仿真效率和精度。

weixin_28705087的博客 320

【学习知识】木马病毒在windows系统中的几种启动方式 - 病毒防治中心 - 360百科

( Fri, 22 Aug 2008 11:26:42 +0800 )Description:如果你的电脑中一种新型的木马病毒你能怎么办?特别是一些未知类型的木马病毒,使用一般的杀毒软件或防木马软件是很难将其根除的,这时候我们就需要手动来清除这些病毒文件了。<br /><br />其实我们只要能破坏这些病毒的启动条件,就可以达到清除病毒的目的,为此,就本人在这方面的一些经验提供给大家,以供参考。<br /><br />病毒的启动主要分为3类,分别是:一、随windows系统启动,二、映像劫持启动,三、捆绑和

liuyukuan的专栏 2541

谈IT企业如何构建高效运行的PMO

摘要:随着项目管理理念日益深入人心,很多企业已开始建立类似项目管理部、PMO等部门,但在实际运作中由于PMO的定位、公司组织结构、PMO人员自身素质等方面的原因,PMO作用发挥得不尽人意。经过系统培训的PMP常常为企业没有良好的项目管理环境而苦恼,PMO人员也常常为自己的职业发展而感到忧虑。为了避免项目经理单兵作战,迫切需要建立高效运营与管理的PMO,建立规范的组织级项目管理体系,使得项目管理真正植根于企业,公司的战略通过项目能够分解与落地。本文以IT企业PMO管理为实例,从PMO的定义、类型、职责等方面入手,概述了国内PMO的发展现状,并对存在的问题与原因进行深入的分析,进而对如何建立高效运

注册表原理解析说明

电脑中注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。例如:系统中的硬件资源、硬件信息、分配正在使用的端口、每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文件类型等。 主要作

haiross的专栏 2万+

注册表原理与使用

服务器、工作站、路由器、交换机   嵌入式操作系统 注册表原理与使用   注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第三方软件还不够完善,如果初级用户使用不当,会出现严重的后果。 一、注册表的由来 PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件

haiross的专栏 8476

Unicode编码

ASCII (American Standard Code for Information Interchange "美国信息交换标准码") 1. 7 bits表示一个字符, 共128个字符 2、第一个bit总是0,用1 byte(7bit)表示字符 3、IBM扩展,共256字符,第一个bit为1时表示扩展的字符 字符标准组织 Unicode  —— Unicode ISO

683

奇怪的String.getBytes("Unicode")

最近在进行联网测试的时候,客户端:symbian服务器:java 因为在symbian中,中文是用unicode进行编码的于是在接收和发送的时候,都必须进行bytes的转换当我用String.getBytes("Unicode"),进行转换时,总发现客户端发送给服务器的数据总无法被服务器unicode编码同事服务器发送的数据给客户端,客户端也不能正常的识别后来当我用St

偷得浮生半日闲 2530

Java中的字符编码(Unicode、UTF-8、UTF-16)的那些事儿

首先看一下下面的程序(测试英文和中文在Unicode、UTF-8、UTF-16这三种编码下,一个字符占几个字节) System.out.println("a(Unicode) :" + "a".getBytes("Unicode").length); System.out.println("a(Unicode) :" + "aa".getBytes...

java开发指南博客 【转载】 589

字符串转Unicode额外2个字节的来源

论坛的讨论地址如下: http://topic.csdn.net/u/20081009/09/e899898c-591f-4985-ae88-5972475708fb.html 测试代码如下:    String s = "1";     byte[] arr = s.getBytes("UNICODE");     System.out.println(Arrays.to

zhch152的专栏 1448

Windows 注册表——了解与修改注册表

五大根键实际上并不是五个,看是五个分支,其实就是HKEY_LOCAL_MACHINE、HKEY_USERS这两个才是真正的注册表键,其它都是从某个分支映射出来的,相当于快捷方式或是别名,这样的话看注册表就简单了许多了,现在说一下每个分支的作用:HKEY_CLASSES_ROOT:列出当前计算机注册的所有COM服务器和与应用程序相关联的所有文件扩展名。HKEY_CURRENT_USER:保存着当前登录到由这个注册服务的计算机上的用户配置文件。

2401_87199769的博客 5591

注册表

一、注册表 1.注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息。可以说计算机上所有针对硬件、软件、网络的操作都是源于注册表的。 2.注册表内的所有信息都是存放在 System.dat、User.dat 文件中的,其中 System.dat 文件包含了所有的 硬件信息和软件信息,User.dat 包含了用户信息。 3.修改注册...

weixin_30649641的博客 575

Windows注册表详解

包含五个主要子键:SAMSECURITYSOFTWARESYSTEM和HARDWARE。每个子键负责存储不同类型的关键系统信息,并在系统引导、身份验证、设备驱动加载等过程中扮演不可替代的角色。子键名称功能描述访问权限SAM存储本地账户数据库,包括用户SID、密码哈希(NTLM)、组成员关系等SYSTEM 和本地管理员可读写SECURITY包含本地安全策略(LSP)、审计策略、特权分配列表等安全配置仅限 SYSTEM 账户访问SOFTWARE。

顺其自然~专栏 1095

windows注册表详解

偶尔得转点文章。空格键坏了,想用修改键盘映射的方法来代替一下,于是就找到了注册表。然后在不断的搜索中,发现了这篇有点收藏价值的文章,转过来保存下。 windows注册表详解http://blog.donews.com/converter/archive/2004/09/16/100404.aspx 注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等

威的大学生活 1827

【C#】 Windows 注册表管理:原理、实践与安全考量

本文系统介绍了C#中Windows注册表管理的核心技术,包括注册表架构、核心概念和操作实践。主要内容涵盖: 注册表层级结构:详细解析了5个预定义根键(HKCR、HKCU、HKLM等)的职责划分及使用场景,强调权限分离的重要性。 数据类型与操作:说明注册表键值对的数据类型(字符串、二进制、DWord等)及对应的RegistryValueKind枚举,提供类型选择建议。 C#操作API:重点介绍Microsoft.Win32命名空间下的Registry和RegistryKey类,强调资源释放和异常处理的重要性。

秋天好的博客 335

Windows注册表

注册表是Windows系统的核心数据库,采用树状结构集中管理所有软硬件配置。它包含五个主要根键:HKCR管理文件关联,HKCU存储用户个性化设置,HKLM记录系统级配置,HKU汇总所有用户配置,HKCC反映当前硬件状态。注册表的作用体现在:1)统一管理软件安装路径和启动项;2)控制硬件驱动和参数;3)维护系统安全策略。相比早期分散的INI文件,注册表提升了配置管理效率,支持动态更新,并通过权限分级保障系统安全。

qq_39980997的博客 1572

注册表是什么,原理是什么?mark undo

注册表是什么,原理是什么? mark undo

Ideality_hunter的专栏 468

使用java修改windows注册表

项目中用到,整理如下:   方法1:利用java.util.prefs.Preferences   这是jdk里面内置的功能,利用prefs包,我们可以将跟程序相关的一些首选项保存在注册表中。关于这部分google上有很多,不再累述,但有一点需要说明的是,java prefs api把我们的信息存到哪里去了呢?   答案是:如果选用systemNode,则保存在[HKEY_LOCAL_MACH...

SAP => Simplify Anything Possible 461
上一篇: Atitit。Js调用后台语言 java c#  php swing android  swt的方法大总结
下一篇: Atitit.判断汉字的编码 regedit 注册表里面的reg_sz
attilax
博客等级 码龄19年 873粉丝 3263原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值