你信吗,木马也曾站在正义一方?

用C++编写的木马程序 用C++编写的木马程序 <> DLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是一种这样的武学。DLL一旦染上了魔性,就不再是正常的DLL程序,而是DLL木马,一种恶贯满盈的病毒,令特洛伊一夜之间国破家亡。 DLL木马的原理DLL木马的实现原理是 阅读详情
  在我们眼中,木马也许是让人恨之入骨的程序,但是,理智地想一想,木马冰河最初 开发的初衷并不是要做损人利己的事。其实,木马也曾是正义之士。Brad Willman,一位埋头于研究计算机技术的小伙子,就利用其编写的木马走上了反儿童色情的道路。

   用木马做点好事

  那还是2000年的时候,那个时候Willman才19岁。不过,他悄悄地把他的木马程序安装在远不止1000台计算机上,并且干这事都好几年了。Willman那时将自己的木马安装在别人的计算机上只是一个目的,就是试图揭发那些儿童色情的行为。据Willman说,在他19岁的时候,他已通过木马至少将70多人送进了监狱。

  但是,直到Willman碰上了一个加利福尼亚大法官才被绊了一跤。那时,他发现Ronald Kline(当时是奥兰治县的法官)很可疑,在他的电脑上发现Kline收藏了大量儿童色情文学作品及一本相关笔记。这些证据还暗示了Kline正计划引诱一些年轻男童。不过这件令人高度关注的案子最终将Willman与犯罪作斗争的事业作了一个终结。Willman在接受采访时回忆说:“我知道那是非法的,不过,我才不在乎那些呢。我觉得如果我能把那些人送到法院,那才叫酷!”

  据Willman回忆,他用来追踪儿童色情犯罪的木马,最初编写的目的其实是想跟赛门铁克的pcAnywhere相竞争。但是那时候,他在进入一些新闻讨论组的时候,跟他聊天的一位加拿大男子竟然要将自己6岁的女儿提供给Willman。这让Willman心灵受到极大的震撼。他迅速联系了警察将这个埃得蒙顿男子送进了监狱。这件事或多或少地改变了Willman放弃与赛门铁克的pcAnywhere竞争的想法。Willman利用自己在讨论组里的机会诱使那些人将自己的木马下载到电脑上,以从他们电脑上获取他们犯罪的证据。

   Willman怎样用木马做好事

  Willman将自己的木马伪造成看起来像是一张图片一样的东西,在他进入儿童色情讨论组的时候,他就将木马发给别人。为了避免引起别人的怀疑,Willman还将木马作了一些改进:当别人运行木马而没有打开图片的时候,木马会随机显示一张图片。当别人运行了木马后,Willman则远程搜寻犯罪的文档或相关图片。一旦找到这些东西,他就立即复制并发送给一些监管儿童色情的组织,他们就会根据证据将作恶者绳之于法。

  不过,直到Willman让Kline下载了木马并发现了Kline犯罪的证据后,一切都变了。Willman像往常一样将Kline的证据发送给监管组织,却没料到,警察找上了门。虽然警察起初对Willman很友善,不过他们让Willman跟他们签了一个协议,同意以后不再干黑客的事,不再干与儿童色情相关的事,否则就起诉他。

   正义之举面前的合法障碍

  美国联邦法律组织的一位负责人Jeff Neuburger说,如果Willman没跟警察签了那份协议,他将被起诉侵犯了州或联邦的法律。但是,只要他不再涉足美国,美国法律要想起诉Willman也是很难的事情。Neuburger说,他碰到过很多像Willman一样利用 网络做一些正义之举的人,但是,他警告说,如果Willman告错了人,他将惹来更大的法律麻烦。

   Willman的木马退休了

  Willman现在有27岁,和父母住在兰利市,他为一家小公司提供电话技术支持,另外还替人修修电脑还梦想着将来能成为一个电脑安全的研究专家。而Kline在今年早些时候已被判27个月的监禁。同时,Willman还在帮助一些寻求帮助的家长。不过,他说,尽管他很想帮助他们让孩子们健康地生活,但是他再也不能用木马了,木马已退休了。尽管如此,Willman似乎并没有过多地考虑后果,他认为自己隐藏踪迹的技术还是不错的,至少直到Kline法官的事发生后才发现他。
低速信号设计之 LPC 篇 摘要:LPC总线作为服务器低速信号设计的关键技术,在BIOS芯片连接、Super I/O芯片控制和嵌入式管理等方面发挥着重要作用。其采用33MHz时钟频率和4位并行传输机制,理论速率达16.5MB/s。设计时需重点关注布线长度(建议<10cm)、信号完整性(45°走线、合理层间隔离)和过孔优化等要点。典型应用案例表明,通过规范设计可确保在工业控制等复杂环境中稳定工作。LPC总线凭借低成本、低引脚数和良好兼容性,仍是服务器低速外设连接的重要解决方案。 阅读详情

相关推荐

避坑指南:将大华官方Java SDK无缝迁移到SpringBoot 2.x项目的完整流程

本文详细介绍了如何将大华官方Java SDK无缝迁移到SpringBoot 2.x项目,重点解决内存管理、连接池设计和异步处理等核心问题。通过设备连接池化、异步非阻塞接口改造和内存管理优化,实现刷卡、刷脸等认证功能的高效整合,提升Web服务的稳定性和性能。

weixin_42557830的博客 418

正义黑客出击破坏Emotet僵尸网络

Emotet银行木马,作为一个历史悠久的恶意软件家族,其一直以金融、外贸业为目标进行钓鱼攻击,属于"商贸信"攻击活动。据网上资料显示,Emotet僵尸主机已经达到百万量级...

blackorbird的博客 370

【ESP32-S3量产指南】基于Flash下载工具实现Release模式Flash加密与安全配置

本文详细介绍了ESP32-S3量产阶段如何通过Flash下载工具实现Release模式下的Flash加密与安全配置。从加密模式选择、工具配置到分区表优化,提供了一套完整的量产安全解决方案,帮助开发者有效防止固件泄露和篡改,确保设备安全。

weixin_28730131的博客 231

【黑客渗透】-- 远程木马控制

随着信息技术的飞速发展,网络搭建和服务器搭建已成为现代社会的基石。它们如同数字世界的骨架,支撑着各类应用的运行,让信息的传递和共享变得前所未有的便捷。然而,这仅仅是开始,对于真正渴望在信息技术领域探索的人们来说,学习的道路上仍有无数高峰等待我们去攀登。此刻,我们正站在一个崭新的起点,带着对知识和技术的渴望,开启一段全新的学习篇章。在这个篇章中,我们将不满足于仅仅搭建起稳固的网络和服务器,更将深入网络攻击.学习新篇章的道路或许充满挑战,但正是这些挑战,将激发我们不断前行的动力。

可惜已不在 4945

【Cadence 17.4实战】----- 基于MySQL与ODBC的企业级CIS数据库配置全攻略

本文详细介绍了如何在Cadence 17.4中配置基于MySQL与ODBC的企业级CIS数据库,提升硬件设计团队的元器件管理效率。通过实战案例和避坑指南,帮助读者掌握数据库部署、ODBC驱动配置及CIS参数映射等关键技巧,实现设计数据的实时同步与高效管理。

weixin_30591551的博客 327

Android11 关于三方应用获取su权限

SELinux,全称Security-Enhanced Linux,是一种基于Linux内核的安全机制。它通过强制访问控制(MAC)来增强Linux系统的安全性,如果不禁用SELinux,完成下面的修改可能会导致设备进入Recovery界面!adb shell getenforce 为Permissive(宽容模式),查看报错日志,发现是客户apk想使用su命令提权,但是没有权限!对于保护系统资源和防止未经授权访问非常有帮助!系统这边做修改,让su权限下放到三方应用.客户的apk运行报错。

sinat_37429535的博客 1902

DLL木马远程注入过程

写一个木马挂载程序,听起来似乎很玄,其实也很简单,本文将告诉你怎样用Visual C++实现一个侵入木马的程序。本文主要涉及动态链接库(DLL)木马,目前相当多数的木马病毒都以这种方式被加载。 DLL木马攻击指的是编程者在DLL中包含木马程序代码,随后在目标主机中选择特定目标进程,以某种方式强行指定该进程调用包含这个木马程序的DLL,最终达到侵袭目标系统的目的。 我们知道,DLL在程序编制中可

Walter的专栏 6038

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 265

VC++动态链接库编程之DLL木马

从前文可知,DLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是一种这样的武学。DLL一旦染上了魔性,就不再是正常的DLL程序,而是DLL木马,一种恶贯满盈的病毒,令特洛伊一夜之间国破家亡。   DLL木马的原理  DLL木马的实现原理是编程者

snail8384的专栏 542

广东省低应变题库

11.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,采用低应变法对混凝土预制桩进行检测时,地基基础设计等级为甲级的桩基工程抽检桩数不应少于总桩数的30%,其余桩基工程抽检桩数不应少于总桩数的20%,且不得少于10根;16.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,当对某桩的桩身完整性判定为III类时,可认为该桩不满足验收条件,不用进一步确定该桩桩身缺陷对桩身结构承载力的影响程度。2.地基基础检测所用计量器具均应在检定(校准、验证)的有效期内,性能符合相关技术要求。

ZShy001238的博客 320

YOLOV12进阶:MSDA多尺度空洞注意力机制解析与实战,突破检测尺度瓶颈

在目标检测中,“尺度差异”是个老大难问题——大目标占据画面大半,小目标可能只有几个像素,普通模型很难同时精准检测。而MSDA(Multi-Scale Dilated Attention,多尺度空洞注意力)就像给模型配备了“变焦眼镜”,能同时关注不同尺度的目标,让YOLOV12在大、中、小目标检测上都能表现出色。这篇教程会带你从原理到实操,掌握这个强大的注意力机制,让你的检测模型真正“通吃”各种尺度的目标。MSDA的“多尺度空洞注意力”设计,是目标检测突破尺度瓶颈的关键一步。

know_F0727的博客 264

木马查杀手机软件/木马查杀手机下载-手把手教攻防详细教程

就在2021年6月初,超过100个有组织犯罪集团,200多名犯罪嫌疑人在差不多同一时间内遭到逮捕和指控。如此众多毒圈大佬集体被抓肯定绝非偶然

程序员三九的博客 1020

基于深度学习的火焰检测系统:YOLOv8 + UI界面 + 数据集详解

YOLO(You Only Look Once)是一种端到端的目标检测算法,其最大优势在于将目标检测任务转化为一个回归问题,可以在一次前向传播中同时完成目标定位和分类。YOLOv8是YOLO系列中的最新版本,相比之前的版本,YOLOv8在精度和推理速度上都做了显著提升,特别是在小物体检测方面表现更加优秀。实时性:YOLOv8具有较高的推理速度,适用于实时火焰检测。高精度:相较于YOLOv7,YOLOv8在精度和小物体检测上有所改进。简单易用:YOLOv8的API简单直观,易于集成和使用。

YOLO 660

在Visual C++中实现一个DLL木马

在Visual C++中实现一个DLL木马   写一个木马挂载程序,听起来似乎很玄,其实也很简单,本文将告诉你怎样用Visual C++实现一个侵入木马的程序。本文主要涉及动态链接库(DLL)木马,目前相当多数的木马病毒都以这种方式被加载。 DLL木马攻击指的是编程者在DLL中包含木马程序代码,随后在目标主机中选择特定目标进程,以某种方式强行指定该进程调用包含这个木马程序的D

zhihu008的专栏 6842

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

黑客系列-木马又现木马

牛排大餐过后,略带醉意的Jack没有放纵自己沉沉睡去,为了查证使用了被盗QQ的目标用户身份,Jack知道他必须尽快开始工作。在帮助Sun申请了密码保护之后,Jack已成功的说服了Sun这两天暂时不要修改QQ密码也不要使用这个QQ,目的当然是为了避免打草惊蛇喽。面对Sun微微失望的眼神,Jack不由得在心中哀叹了一声,都是正义惹的祸。 要想真正确实的...

weixin_34278190的博客 252

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

狙击驱动木马

一. 招摇过市的流氓与木马中国的网络从来都是与各种蠕虫、木马、漏洞扫描器一起运作的,而国民对计算机木马和病毒的敏感反应是很重的,但是防范意识却又是最低的,于是在这样的环境里,越来越多的人参与到了木马病毒的制造行业,稍有手段的则打着正义旗号推出各种“便民服务”的网络工具,并且为了将便民服务进行到底,大部分此类工具都是一旦装上,则无法卸载的爷们,使用这种铁腕手段强驻的工具则被称为“流氓软件”或者“恶意

learndkid的专栏 1926

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

(转自天极网)VC++动态链接库编程之DLL木马

(转自天极网)VC++动态链接库编程之DLL木马 从前文可知,DLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江 湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是...

didan3807的博客 146

一个木马黑客的自白

  曾几何时,在计算机技术人员眼中,黑客还被当成了天才来膜拜。即使到了中国所特有的红客出现,也因为所谓的正义感而尚能被网民接受。但在目前这个几乎全民皆可以做黑客的时代,黑客守则中的不恶意破坏任何系统已无人遵守,黑客精神被彻底抛弃。       在赤裸裸的金钱诱惑下,天天都有数不清的人怀着各种目的,前赴后继踏入网络地下世界。Kevin的7天黑客日记,让我们看到了互联网“黑社会”触目惊心的事实:许多人

xxyakoo的博客 1131

dede最新漏洞以及黑客木马特征

dede最新漏洞以及黑客木马特征时间:2013-08-04 12:48来源:疯子工作室 作者:疯子 点击: 次据疯子工作室统计,截止到今天,依旧有大约3万个使用dedecms管理系统程序开发的网站被黑客挂马。   Dedecms后台系统程序升级到5.7 sp1版本之后,依旧存在很多漏洞。具体的情况,也是在最近一段时间彻底暴漏出来。据疯子工作室统计,截止到今天,依旧有大约3万个使用dedecms管理

IT技术宅-北方的刀郎 1274
上一篇: 转:开发框架--谈谈对struts多模块的认识
下一篇: 马化腾:差点收购YouTube
jxcjxinxing
博客等级 码龄20年 51粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jxcjxinxing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值