- 黑客入门 | 用ROP和shellcode攻击SolarWinds Serv-U SSH漏洞
廖致君
安全网络攻击模型
(备注:黑客Hacker并不等同于信息安全罪犯。)最近花了些时间学习bufferoverflow安全漏洞,做了大名鼎鼎的CSAPP课程里的attacklab,学到了return-orientedprogramming(ROP)这种让我大开眼界的进攻方式。于是想要趁热打铁,来详细研究一下现实世界中的黑客进攻案例。本篇文章挑选的是2021年SolarWindsServ-UFTP软件中的漏洞,记录编号C
- frp内网穿透及sshuttle
段帅龙呀
Linuxlinux
frpssh配合sshuttle可以真实模拟,直接访问内网vmwareip地址FRP内网穿透一、所需环境:服务端:1台有公网ip并且安装有docker的服务器、域名客户端:有1台或者多台安装docker的服务器如果有域名需要添加对应的解析有防火墙或者安全组需要开放对应端口,frps监听7000,frpsdashboard监听7500,client本次示例是6000,根据实际情况修改本篇笔记均使用u
- 【WinSCP 安装与使用】
岁月玲珑
linuxwindowslinuxwindows
WinSCP是一款完全免费且开源的Windows图形化文件传输工具,基于SSH协议实现安全的SFTP和SCP文件传输,特别适合在Windows与Linux服务器间进行文件管理。以下从安装到使用的完整指南:✅一、WinSCP的核心特性(免费开源验证)开源协议采用GPL许可证,源码托管于GitHub。零费用无广告、无功能限制,所有版本均可免费使用。安全传输支持SFTP(SSH-2)、SCP协议,全程加
- 借助 Wisdom SSH,实现 Linux 用户组与权限的精细化智能管控
qinyia
sshlinux人工智能服务器运维运维开发后端
WisdomSSH(官网ssh.wisdomheart.cn)凭借AI助手,为Linux用户组与权限管理带来智能便捷体验。用户组智能管理按需创建:如输入“为projectX项目建组,含开发、测试、运维人员”,AI助手创“projectX_group”组,生成groupaddprojectX_group命令。权限调整:输入“调projectX_group对代码目录读写,测试报告目录读权限”,AI助手
- 小米路由安装frpc
zngw
sshfrp
一、起因家里部署了Nas,在出租屋里直接使用frp访问外网服务器转发的是可以用,但是,流量得多贵啊,还有中间商赚带宽。于是想了一下,在出租屋的路由上部署frp客户端,使用xtcp协议,打洞直连,速度快还不需要流量。二、流程前提条件:一台公网frps服务器家里Nas,已经配置好SMB文件共享(端口445)、WebDav(端口80,可选端口443),其他自行发挥。出租屋解锁SSH的小米路由,我家是小米
- Ubuntu基础(上传文件和部署Python)
aaiier
ubuntulinux运维
首先打开
[email protected]然后写yes,在输入密码然后就是输入ls/查看根目录ls/结果是ubuntu@x0-x-xx-xx:~$ls/binbootdevhomelib.usr-is-mergedlost+foundmntprocrunsbin.usr-is-mergedsrvtmpvarbin.usr-is-mergeddataetclibli
- Ubuntu 22/24开启 root 远程登录
运维阿峰
ubuntuubuntulinux运维
$sudosu-root//切换为root用户$passwd//设置root用户密码#ubuntu22.04$sed-i"/#PermitRootLogin/aPermitRootLoginyes"/etc/ssh/sshd_config\&&systemctlrestartsshd#ubuntu24.04$sed-i"/#PermitRootLogin/aPermitRootLoginyes"/
- Ansible部署MySQL实操
码农运维知识
运维mysqlansiblemysql
一、Ansible概述Ansible是一款开源的自动化运维工具,由MichaelDeHaan于2012年创建,2015年被红帽(RedHat)收购(收购金额超1亿美元)。它基于Python开发,通过SSH协议实现远程节点管理,无需在被控端安装任何客户端代理(Agentless)。这种设计使其成为轻量级、易部署的自动化解决方案,特别适合批量系统配置、应用程序部署和任务编排等场景。核心特点无代理架构:
- YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-block.py
红色的山茶花
YOLO笔记深度学习
block.pyultralytics\nn\modules\block.py目录block.py1.所需的库和模块2.classDFL(nn.Module):3.classProto(nn.Module):4.classHGStem(nn.Module):5.classHGBlock(nn.Module):6.classSPP(nn.Module):7.classSPPF(nn.Module):
- ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repo
youyu-youyu
githubgit
问题描述:在使用Git将本地仓库推送到远程仓库的时候,发生了如下错误:“fatal:Couldnotreadfromremoterepository.”1、首先输入以下命令检查SSH是否能够连接成功(ssh后面有空格)
[email protected]发现报错:端口连接超时。ssh:connecttohostgithub.comport22:Connectiontimedout解决方案(亲测有
- 阿里云Redhat系Linux修改ssh默认端口
z同学的编程之旅
环境搭建阿里云linuxssh
阿里云Redhat系Linux修改ssh默认端口在阿里云买了个服务器,想着ssh的默认端口是22,这不安全。我就将修改ssh默认端口的过程记录下来了,方便日后回看。本命令适用于Redhat系Linux,例如Redhat、Centos、AlibabaCloudLinux、OracleLinux、RockyLinux、AlmaLinux等。我为什么知道这些Linux?因为公司有内核相关业务,接触的多了
- Linux更新操作系统Openssh版本9.3p1(源码编译安装)
Lz__Heng
LinuxOpenSSHlinux服务器运维
Linux更新操作系统Openssh版本9.3p1(源码编译安装)部署前准备安装依赖yuminstall-ygccgcc-c++glibcmakeautoconfopensslopenssl-develpcre-develpam-develyuminstall-ypam*zlib*openssh-9.3p1.tar.gzopenssl-3.1.0.tar.gz备份文件cp/etc/pam.d/ss
- 登录操作系统报错:-bash: fork: Cannot allocate memory
Lz__Heng
故障处理运维Linux运维服务器linux
问题描述服务器无法正常访问,检查操作系统监控,CPU使用率过高SSH远程登录服务器报错:-bash:fork:Cannotallocatememory排查思路该报错一般为pid进程数量超出,可以排查当前操作系统pid数量和相关设置如下:#查看当前操作系统的内核PID_max参数设置sysctl-a|greppid#默认为32768#查看当前操作系统systctl中是否有对pid的大小进行额外设置c
- 如何在CentOS7上搭建自己的GitLab仓库详解
ytttr873
gitlab
在CentOS7上搭建自己的GitLab仓库的详细步骤如下:更新系统:在开始之前,确保您的系统已经更新到最新版本。打开终端,并执行以下命令:sudoyumupdate-y安装依赖:在安装GitLab之前,需要安装一些依赖项。执行以下命令来安装所需的软件包:sudoyuminstall-ycurlpolicycoreutils-pythonopenssh-server添加GitLab仓库:执行以下命
- 通过网络api获取日期对应的节假日信息
白衫长发时光与她
QT网络qt
网络接口获取链接:免费节假日API_原百度节假日APIHolidayJudge.h#pragmaonce#include#include"ui_HolidayJudge.h"enumDATESTATE{WORK=0,//工作日DAYOFF,//休息日HOLIDAY//节假日};classHolidayJudge:publicQWidget{Q_OBJECTpublic:HolidayJudge(Q
- Zellij 详细教程:一个比 tmux 更友好、强大的终端复用工具
vortex5
工具命令zellijtmuxlinux
在终端环境中,终端复用器(TerminalMultiplexer)是一种不可或缺的工具。它能够将单一的终端会话分割为多个独立的工作区域,不仅实现“一心多用”,还便于会话管理,确保任务不会因误关闭终端窗口或SSH连接中断而丢失。这种特性对于开发者、系统管理员以及命令行爱好者来说尤为重要。提到终端复用器,许多人首先想到的是经典的tmux,其名称正是“terminalmultiplexer”的缩写。凭借
- [email protected]: Permission denied (publickey)解决方案(简单粗暴)
自戀自動治姓病
gitgithub
1.输入ssh-keygen-trsa-C“
[email protected]",其中“”中填上在github中的邮箱2.然后一直enter,不用考虑提示3.输入cat~/.ssh/id_rsa.pub,出来的就是SSHKey
- 用户身份 git ssh -T git@github可以成功,但是克隆不了的问题
fyueqiao
gitgithubssh
标题问题描述:git以root身份可以克隆但是以用户身份登陆不了解决方案:先进行如下操作eval$(ssh-agent-s)再进行ssh-add~/.ssh/github_rsa\\(add后面的的是你自己rsa存放的地方)解决
- ssh -T [email protected]失败后解决方案
青草地溪水旁
linuxsshgitgithub
这个错误表示你的SSH连接无法到达GitHub服务器。以下是详细解决方案,按照优先级排序:首选解决方案:使用SSHoverHTTPS(端口443)这是最有效的解决方案,因为许多网络会阻止22端口:#编辑SSH配置文件nano~/.ssh/config添加以下内容:Hostgithub.comHostnamessh.github.comPort443Usergit保存后测试连接:ssh-Tgit@g
- Linux命令行操作基础
EnigmaCoder
Linuxlinux运维服务器
目录前言目录结构✍️语法格式操作技巧Tab补全光标操作基础命令登录和电源管理命令⚙️login⚙️last⚙️exit⚙️shutdown⚙️halt⚙️reboot文件命令⚙️浏览目录类命令pwdcdls⚙️浏览文件类命令catmorelessheadtail⚙️目录操作类命令mkdirrmdir⚙️文件操作类命令mvrmtouchfindgziptar⚙️cp前言大家好!我是EnigmaCod
- NCSC发现针对FortiGate防火墙的隐蔽反向SSH与DoH后渗透工具
FreeBuf-
ssh运维
英国国家网络安全中心(NCSC)近日发现一款名为SHOERACK的新型恶意软件工具。这款后渗透恶意软件通过隐蔽的反向SSH隧道、自定义协议滥用和DNS-over-HTTPS(DoH)技术来维持远程访问并规避检测,引发了企业安全团队的高度警惕。恶意软件来源与功能该恶意软件最初在FortiGate100D系列防火墙上被发现,被认为是开源NHAS反向SSH工具的修改版本,但增加了显著的后渗透功能增强。分
- 多层次的类如何使用Jackson序列化/反序列化(Inheritance with Jackson)
张紫娃
Baeldung学习笔记基础知识windowspython开发语言
HavealookatworkingwithclasshierarchiesinJackson.Jackson如何处理类中类InclusionofSubtypeInformationTherearetwowaystoaddtypeinformationwhenserializinganddeserializingdataobjects,namelyglobaldefaulttypingandper
- 几款实用的开发软件SQLyog/xftp/redis可视化工具无需激活
qq_21422587
mysqlSQLyogredis可视化ftp
SQLyog可视化界面:提供直观的GUI操作数据库,减少命令行使用跨平台支持:支持Windows和Linux操作系统强大的查询功能:内置SQL查询编辑器,支持语法高亮和自动完成数据导入导出:支持多种格式的数据导入导出数据库同步:可以比较和同步不同数据库之间的结构和数据可视化工具:提供表结构设计器、视图设计器等可视化工具SSH隧道支持:可以通过SSH安全连接远程数据库SQLyog如有需要请自行下载x
- 手把手教你玩转Git安装与配置(附避坑指南)
techfluent
git
文章目录一、安装前必看的5个注意事项(血泪经验)二、超详细安装步骤分解(图文对照版)Windows用户专属流程Mac用户极简方案三、新手必做的3项基础配置1.设置全局用户信息(核心操作!)2.生成SSH密钥(免密登录神器)3.修改默认分支名称(2020年后重要变化!)四、常见翻车现场救援指南场景1:安装后命令无法识别场景2:提交显示匿名用户场景3:SSH连接总失败五、高阶玩家定制技巧(提升效率必备
- VSCode 拉取/推送github出现Git:[email protected]:Permission denied(publickey)解决方案
本地测过没问题啊
githubgitvscode
弹窗提示:原因:Github没有添加本地公钥(publickey),要将本地的公钥添加至github内,就可以拉取/推送了。解决方法:1、查看本地是否有SSH密钥:cd~/.ssh,找不到即没有。2、生成SSH密钥:ssh-keygen-trsa-C“youremail”3、进入本地/C:\Users\11937\.ssh文件夹下面将id_rsa.pub文件里面的内容拷贝出来4、将id_rsa.p
- Gitea 安装和配置
lionchan187
Web工具gitea代码托管
Gitea安装和配置:http://coffeelatte.cpolar.cn/post/software/applications/gitea/gitea_安装和配置/文章目录Gitea安装和配置:1.简介2.Gitea安装3.配置文件3.1.发送测试邮件4.创建/删除Gitea服务4.1.Windows服务4.2.Linux服务5.使用HTTPS服务6.使用内置SSH7.邮箱配置8.允许通过邮
- Jenkins JNLP与SSH节点连接方式对比及连接断开问题解决方案
tianyuanwo
devopsjenkinsssh运维
一、JNLPvsSSH连接方式优缺点对比对比维度JNLP(JavaWebStart)SSH(SecureShell)核心原理代理节点主动连接Jenkins主节点,通过加密通道通信,支持动态资源分配。Jenkins通过SSH协议远程登录代理节点执行命令,需预先配置SSH服务。适用场景容器化环境(如Kubernetes)、需要跨平台或动态扩缩容的场景。传统物理机/虚拟机、静态节点或简单命令执行场景。安
- 解决mac ssh仓库代码每次pull和push都需要输入密码
BianHuanShiZhe
macosssh运维
先执行$ssh-add-L出现Theagenthasnoidentities.然后执行ssh-add下次push和pull代码的时候就不需要输入密码了
- GitHub代码仓库自动同步到私有GitLab服务器教程
JAY-WJ
githubgitlab服务器
本文面向需要将GitHub开源项目镜像到自建GitLab服务器的开发者,提供全链路同步方案(手动+自动),解决代码库双向维护难题。场景说明原始仓库:https://github.com/your-project.git目标仓库:ssh://git@xxxxxxxxx/your-project.git需求本地保留GitHub原始仓库更新能力自动/手动推送代码到私有GitLab长期保持双端代码一致️环
- 【黑客与安全】开启Kali Linux的SSH接口
雾岛心情
黑客与安全服务器linux运维SSHkali
在没有开启KaliLinux的SSH功能之前,我们是无法使用工具利用ssh登录,这里面我们需要修改当前的机器的网络连接方式,如果是NAT方式的话我们需要修改为桥接模式。接下来我们需要配置ssh参数用来进行服务的启动,这里需要修改如下内容:修改sshd_config文件,命令为:vi/etc/ssh/sshd_config将#PasswordAuthenticationno的注释去掉,并且将NO修改
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http