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

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

  1. Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结...

    Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结 1. ,免杀技术的用途2 1.1. 病毒木马的编写2 1.2. 软件保护所用的加密产品(比如壳)中,有 ...

  2. Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结

    Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结 1. 注册表是树形数据库 1 2. 注册表的由来 1 3. Java  操作注册表 2 3.1. 使用Preferences  ...

  3. Atitit.木马病毒websql的原理跟个设计

    Atitit.木马病毒websql的原理跟个设计 1. Keyword Wsql { var sql="select "+p.txt+" as t,"+p.v+ ...

  4. C#操作注册表全攻略

    相信每个人对注册表并不陌生,在运行里面输入"regedit"就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病毒常常会光顾的地方,比如病毒和恶意软件常常 ...

  5. Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结

    Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...

  6. 使用批处理文件来操作注册表

    在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门.木马程序而删除Run下残余的键值.或者创建一个服务用以加载后门.当然我们也会修改注册表来加固系统或者改变系统的某个属性 ...

  7. 用VB操作注册表 [转]

    用VB操作注册表(一) [转] 认识登录数据库(Registry) 我们在这里主要通过由Windows系统本身提供的注册表编辑器regedit.exe来认识登录数据库(Registry) 1.Key和 ...

  8. 批处理操作注册表完全攻略(读取注册表/写入注册表等)

    一,批处理生成.Reg文件操作注册表  用批处理中的重定向符号可以轻松地生成.reg文件.然后用命令执行.reg文件即可!  这里,着重要了解.reg文件操作注册表的方法.  首先.reg文件首行必须 ...

  9. delphi 操作注册表详解

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息.   一.创建和释放TRegistry对象   1.创建TRegistry对象.为了操作注册表,要创建一个TRegistr ...

  10. .NET操作注册表的封装类

    我写的一个在.NET下操作注册表的类. using System; using Microsoft.Win32; using System.Collections; namespace iUNS { ...

最新文章

  1. Cell Research丨潘涛/骆观正合作团队揭示肠道菌群调控宿主RNA甲基化和基因表达新机制...
  2. 免费的Installer 和 免费的Pascal Script Engine.
  3. Yarn的默认端口(转载)
  4. 用户画像标签维度_一文看懂用户画像标签体系(包括维度、应用场景)
  5. 华为matebook14会不会用鸿蒙,2020年用什么笔记本上网课?浅析华为MateBook 14 2020款...
  6. TabIndex 属性 Tabindex=-1 与Tabindex=0、任意数字 (收录)
  7. timeSetEvent的用法(一)
  8. 查找窗口隐藏了怎么办_百度地图这些不为人知的隐藏功能
  9. FPGA入门必看资源
  10. 黑莓开发新手入门教学帖,如何制作一个能控制LED颜色的程序(一)
  11. GLSL内置数学函数部分解析
  12. 基于multisim的fm调制解调_基于Multisim的AM调制解调电路设计与研究
  13. 飞腾PHYTIUM FT-1500a性能测试-内存-PCIe
  14. 基于低代码平台(Low Code Platform)开发中小企业信息化项目
  15. 应用层 - 重学计算机网络系列(2)
  16. SAP MM 采购预付款管理初探
  17. 海康威视开放平台门禁权限管控案例说明
  18. 散列表查找失败平均查找长度
  19. 【山东事业编】公共基础知识备考——中国的地势和地形
  20. python爬虫学习笔记(一)—— 爬取腾讯视频影评

热门文章

  1. SlickEdit介绍
  2. Sudo环境变量继承
  3. php 虚拟主机和虚拟目录的配置
  4. 【库】JavaScript——滚动条( 不是很完善 )
  5. HDU 1196 ( Lowest Bit )
  6. 让划动 listview时 没有黑色背景
  7. .net 中Dictionary的遍历
  8. 用webclient实现无空间上传文件错误:Could not find a part of the path .....
  9. otsu结合OpenCV实现灰度图像自动阈值处理
  10. EL表达式获取对象属性的原理