Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService
Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService
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://www.cnblogs.com/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的更多相关文章
- Atitit.木马病毒的免杀原理---sikuli 的使用
Atitit.木马病毒的免杀原理---sikuli 的使用 1. 使用sikuli java api1 1.1. 3. Write code!1 2. 常用api2 2.1. wait 等待某个界面出 ...
- Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结
Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结 1. ,免杀技术的用途2 1.1. 病毒木马的编写2 1.2. 软件保护所用的加密产品(比如壳)中,有 ...
- Atitit.木马病毒websql的原理跟个设计
Atitit.木马病毒websql的原理跟个设计 1. Keyword Wsql { var sql="select "+p.txt+" as t,"+p.v+ ...
- atitit.木马病毒webshell的原理and设计 java c# .net php.
atitit.木马病毒webshell的原理and设计 java c# .net php. 1. 隐蔽性 编辑 WebShell后门具有隐蔽性,一般有隐藏在正常文件中并修改文件时间达到隐蔽的,还有利用 ...
- Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结
Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结 1. 注册表是树形数据库 1 2. 注册表的由来 1 3. Java 操作注册表 2 3.1. 使用Preferences ...
- Atitit.木马病毒 webftp 的原理跟个设计
Atitit.木马病毒 webftp 的原理跟个设计 ftp木马的效果 文件传播 文件列表 文件内容查看 作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Att ...
- C#操作注册表全攻略
相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病 毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项 ...
- Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结
Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...
- Atitit.木马病毒自动启动-------------win7计划任务的管理
Atitit.木马病毒自动启动-------------win7计划任务的管理 1. 计划任务的Windows系统中取代AT 的schtasks命令1 2. Win本身的系统计划任务列表1 2.1. ...
随机推荐
- element-ui中select下拉框,选择后赋值成功,但是框上不显示的坑
这个是今天遇到一个坑,因为也是第一次使用vue+element-ui开发,所以记录一下自己遇到的一些问题. 这个问题是在开发省市区三级联动组件的时候遇到的,具体的情况如下发的gif图,虽然解决了问题, ...
- zk选举过程
1. 服务器启动时期的Leader选举 若进行Leader选举,则至少需要两台机器,这里选取3台机器组成的服务器集群为例.在集群初始化阶段,当有一台服务器Server1启动时,其单独无法进行和完成Le ...
- 获取dataset结果集的第一行第一列字段
DataSet fileNameDs = DbHelper.excuteSqlResultDataSet(strSql); ) { DataTable fileNameDt = fileNameDs. ...
- Android检测网络连接
Android检测网络连接 import android.app.AlertDialog; import android.content.Context; import android.content ...
- Chrome/FireFox处理JSON的插件
Chrome/FireFox处理JSON的插件 JSON插件 效果对比 对于json的数据如果不编排一下格式查看起来很费劲,今天推荐一款chrome/Firfox下处理json的插件JSON-ha ...
- tensorflow c++接口的编译安装与一些问题记录
参考这篇文章安装,依次安装bazel,protocbuf,eigen3,然后下载tensorflow源码,编译c++ api,将编译结果拷贝到搜索路径 最后测试案例时遇到一些问题 (1)fatal e ...
- C++ 初始化列表(转载)
何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段.在 C++中,struct和class的唯一区别是 ...
- C# SQLite 创建数据库的方法增删查改语法和命令
SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...
- 今天科普一下 iOS马甲包审核以及常见审核问题
一.什么是马甲包 马甲包是利用App store 规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二. ...
- vue - utils for extract-text-webpack-plugin
描述:将包或包中的文本提取到单独的文件中, 点击查看官网详情: https://www.npmjs.com/package/extract-text-webpack-plugin