两则简易的图片携带信息的分析

最近遇到两个使用图片携带信息简易做法,兹分析记录如下。

一则是华龙网的收藏夹图标文件被嵌入了一些恶意链接,原文件在 http://news.cqnews.net/favicon.ico , 请勿随意点击,下载后(2014-08-14 16:57)使用文本编辑器可以看到除了呈现图标文件外,还附带了很多恶意链接,同时文件尺寸明显偏大。

图片攻击-201408-002

循着这个思路,我在网上翻查了一下,很多网友已经具备了这样简易的图片携带信息的做法,使用windows的 “copy /b  “a.jpg” + “b.zip”  “b.jpg”” 命令就能将两个文件合并成一个,而且根据扩展名不同,可以使用不同的打开程序对文件进行解读。

如下图是一张CD的封面,使用 -7zip 解压后,会看到是“ -R/布达佩斯大饭店” 的BT下载种子。

男人本色-cd-20140815

使用 -notepad++ 打开后会看到:

图片攻击-201408-003

对于传统意义上的图片携带信息,分析原图的每一个字节,在不丢失原图信息的情况下,对其中的非关键位进行偏移,进而实现图片携带信息,上述方法可谓简单粗暴,在多数情况下,却是有效的。

发表在 编程技术, 计算机技术 | 标签为 , | 留下评论

山羊绒围巾女冬英伦百搭围脖双面格子加厚保暖披肩显白黑茶色蓝黑色板栗色中国电信 电信流量5G卡手机卡京东制作

-notepad++效率技巧两则: 插入时间和调用ASCII码表

从UltraEdit转为用 -NotePad++  最不适应的两点是,没有快速的插入日期和时间和快速的查看ASCII码表,经过一番研究,成功解决在Notepad++里插入日期和时间,并且调用ASCII码表也从来没有这么容易!

1. 插入日期和时间

UltraEdit里可以轻易F7实现,在 -Notepad++ 可以实现 Ctrl + F7 来插入查当前日期和时间。

Menu — TextFX –TextFX Insert — Date & Time short | long format

notepad++-date-time-201408

2. 即时查看ASCII码表

-google 在国内挂了之后,在 -baidu 上愣是没找到一个可以满足下面这个视图的 ASCII码表,很多软件和硬件攻城师应该经常用到的啊。

在 Menu — TextFX — TextFX Tools — Insert Ascii Chart or Character 即时生成ASCII 码表,二进制、10进制,八进制和16进制。

notepad++-ascii-201408

发表在 编程技术, 计算机技术 | 标签为 , , | 留下评论

冰糖雪梨膏儿童宝宝砀山慈梨膏山羊绒围巾女冬英伦百搭围脖双面格子加厚保暖披肩显白黑茶色蓝黑色板栗色中国电信 电信流量5G卡手机卡

中国电信和联通封堵了80端口和-自然域名

-中国电信 早前就封了,随着 -中国联通 201406月份以后逐渐封堵了ADSL用户的80端口,个人想利用家里的PC做点测试什么的提供一下HTTP服务已经不可能了。

变通的方法是,使用80以外的端口,比如81,90,91,9001等等,但都需要在原来的域名后面加上相应的端口号才能访问,如原来是 ufqi.com, 改换掉80端口之后,就需要 ufqi.com:81, ufqi.com:91等才能访问。这对用户,尤其小白用户来说是噩梦。

变通的另外一个方法是使用HTTPS, 该服务的默认端口是443,还没有被封掉,还可以使用,比如 ufqi.com 无法访问,使用 https://ufqi.com 就可以访问到。

第三个变通的方法是,在DNS设置里,使用域名URL转发的功能,将当前域名的访问指向到带端口号的地址上去,搜索了一下,多数境内域名服务商已不再提供域名级别的URL Forwarding功能了,在境外注册的域名,这个路子应该还行得通。

明眼能看到,无论使用哪个端口后,要再次被封,都是分分钟的事情。所以,被封这样的事,只能被动承受。

下面在提供第四种变通的做法,比较上面的,可以更好操作一些:使用 -自然域名 ,-自然域名 也提供了URL转发功能。

这种方法是注册一个 -自然域名 的服务名称, 如 -ufqi-srv001 , 注册时我将它指向了 http://wadelau.mooo.com , 这个服务跑在ADSL下面的一个PC上,现在 80端口被封了,我只要在 -自然域名 的管理配置里,修改将 -ufqi-srv001 使之指向  http://wadelau.mooo.com:81 即可,前端用户继续使用 -ufqi-srv001 ,感觉不到差异,继续使用服务…..

 

发表在 -NatureDNS/-自然域名, 服务器运维, 计算机技术 | 标签为 , , , | 留下评论

冰糖雪梨膏儿童宝宝砀山慈梨膏山羊绒围巾女冬英伦百搭围脖双面格子加厚保暖披肩显白黑茶色蓝黑色板栗色中国电信 电信流量5G卡手机卡

-gMIS更新:增加input2Select功能

所谓input2Select是将当下正在操作的input输入框变成select一样的功能,也即随着用户的输入,在下方会出现类似下拉列表的备选项或者提示项。在搜索引擎中又叫做instant search.

input2select_201407

如上图所示,在 -bing 里输入 “自然”两个字,下面会出现备选项的提示。

在 -gMIS 原本无此需求,但当某个字段的使用select输入方式时,如果选择项超过50或者100之后,用户检索、选择起来就比较困难。如下图所示。

input2select_201407--2

这时如果能有个类似搜索引擎的那种先根据关键词过滤一下相关条目,然后再列出来就比较好。想到做到,经过一番分析和实验,实现如下效果:

input2select_201407--3

主要逻辑:

1. 将原来的select使用css修饰为 style.display=’none’, 设置为隐藏;

2. 增加输入框,在输入框的附近设置一个隐藏的用于显示搜索结果的隐藏div;

3. 在输入框上绑定onkeyup动作,用户每有输入即进行检索:1)可以在本地检索隐藏的select里的options,也可以即时联网从服务器上获取检索结果(像通用搜索一样)。

下面的代码中使用的是第一种方式。

涉及到的程序:

function input2Select(inputx,obj){
var lastSearchTime = userinfo.lastInput2SearchTime;
var nowTime = (new Date()).getTime();
var balaTime = nowTime – lastSearchTime;
var inputVal = inputx.value;
var obj1737 = document.getElementById(‘pnsk_’+obj+’_sele_div’);
if(inputVal.length < 2 || balaTime < 1000){
console.log(‘input-length:’+inputVal.length+’, balaTime:’+balaTime);
//obj1737.innerHTML = ”;
return 0;
}
else{
var iInputX = inputx.value.toLowerCase();
var hidesele = document.getElementById(‘pnsk_’+obj+”);
var odata = “”;
var dataarr = []; var j = 0;
if(hidesele != null){
for(var i=0; i < hidesele.length; i++){ //- 复制搜索栏里的select选项到当前
var seleText = hidesele.options[i].text;
if(seleText.toLowerCase().indexOf(iInputX) > -1){
//–
dataarr[j++] = ‘<span onmouseover=parent.changeBGC(this,1); onmouseout=parent.changeBGC(this,0); onclick=parent.makeSelect(\’in
put2sele_’+obj+’\’,this.innerText,\’pnsk_’+obj+’_sele_div\’,\’pnsk_’+obj+’\’);>’+seleText+'</span>’;
if(j>30){
dataarr[j++] = ‘更多…..’;
break;
}
}
}
}
if(dataarr.length == 0){
dataarr[0] = “……Oops! 没有找到/Not Found….”;
}
odata = dataarr.join(‘<br/>’);
//console.log(odata);
obj1737.innerHTML = odata;
userinfo.lastInput2SearchTime = (new Date()).getTime();
}
}

在自己实现上述功能之前,找了网上一些类似的功能代码,都感觉不够简洁。自己写起来相对还不算太难。

 

 

 

 

 

 

发表在 -gMIS, 编程技术, 计算机技术 | 2条评论

冰糖雪梨膏儿童宝宝砀山慈梨膏山羊绒围巾女冬英伦百搭围脖双面格子加厚保暖披肩显白黑茶色蓝黑色板栗色中国电信 电信流量5G卡手机卡

如何打造一台清爽的电脑

最近改造了两台电脑,看到电脑里装的乱七八糟的软件和运行的乱七八糟的程序,实在让人受不了,结合实际工作中积累的一些小经验,说说如何打造一个清爽的pc运行和使用环境。

整齐、清洁、条理的环境总是能给人舒服的感觉。繁多的统一就是美。 有些时候偶尔能看到说一些著名学者有不修边幅的,有穿睡袍上街的,甚至有人摆出爱因斯坦的办公桌说,看,凌乱的人智商高。 实际上这可能是一种反智。 拿那些个案或者不当的行为,当成是普遍的、受赞的行为。

回到主题,清爽的PC运行环境,就是不安装一些设计不良软件,或者受限于运行模式,有反复骚扰用户的行为软件。通常,我们会选用一些好用的商用软件,或者由于经济原因,我们不愿意购买license,而接受功能受限的却又有骚扰用户行为的商业软件。

为更好的用户体验,对于后一种行为,我们应该说NO,然后找一种开源软件作为替代品。同时,对于那些不遵循软件运营模式的软件,诸如所谓“颠覆”的创新软件应该予以警惕。

有些品牌电脑,在出厂默认状态时,会为用户安装大量根本不需要的试用装的软件,这些软件的安装只有一个目的,最大限度地收取软件推广和预装的费用,用户什么都没有做,已经启动了上百个进程来运行这些试用装软件,期间不断的各种提醒、弹窗,让用户继续购买各种没有需求的软件。这是噩梦的开始,是强奸用户。在Mac电脑用户看来,买入一台计算机上一段愉快旅程的开始,而对于兼容机品牌PC可能是花钱的开始,还有为PC厂商预装的各种试用装进行各种购买。

说说我的推荐:

1. 搜寻将各种预装的软件统统卸载干净,实际上是很难做到的,注册表内已经污染了,而且有些软件很难彻底删除。较好的做法是对于一些无良的PC电脑,只有重装系统以图个清静;

2. 使用 -avg 来替代某些杀毒软件,免费版已经能够胜任日常工作,清爽、默默无闻的保护电脑正常安全运行;

3. 使用 -7zip 来替代一些压缩、解压缩软件,windows自身已经集成了zip的解压缩,但 -7zip 对于一些商业软件或者商业软件的试用版来说,只好。

4. 使用 -notepad++ 来替代某些文字、程序编写器,几乎可以媲美 ultraeditor, 但他却是开源的,其中我常用的插入时间,需要单独设置,但其集成的 ftp/sftp 功能,真的很赞!

5. 使用 -interlnationalQQ 即时通讯工具,这个几乎不用解释,用过的人都懂得;

6. 使用 -迅雷 精简版,下载工具;

7. 使用 -chrome 浏览器,好用的浏览器,没有之一;

8. 使用 -naturedns  自然域名, 完全不用记域名,只要知道想去哪儿的名称即可,如 “-工商银行”;

9. 使用 -google IME 输入法;

10. 使用 -potplayer 播放器,好用的多媒体播放器,没有之一,高清及3D爱好者都深知这一点, 也可以考虑使用 -videolan;

11. 使用 -wordweb 英语词典;

12. 使用adobe reader pdf阅读器;

13. 使用 MS office办公套件,这个是事实上的标准,需要花钱买,除非不选用PC兼容机;

14. 横屏的显示器,Windows的状态栏/任务栏应该竖着放左侧或者右侧,给本来就窄短的上下流出更多的可视面积来;

顺便说一下 MS windows 8 这个瓷片操作系统界面,只能说,很勇敢的做法,完全不顾用户感受,有些东施效颦了。

发表在 计算机技术 | 一条评论

电热蚊香液套装无味婴儿孕妇家用补充液插电式灭蚊液护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏书皮纸自粘透明磨砂加厚包书皮小学生一二三四年级上册上学期书膜全套课本书本保护套16k封面外壳防水a4彩染发剂植物纯自己在家染头发膏女2021流行色显白天然

一例网络应用开发的bug分析

作为 -GWA2 的一个实例, -gMIS 一直运行良好,今天在部署到一个新项目测试运行中,发现一个令人不安的bug,虽很快找到并修复,但就像OpenSSL的heartbleed一样,需要事后反思。

事情缘起这样,新项目部署后,其中一个数据表的记录被不断的更新,数据被清空。由于是部署在一个“伪私有主机”上,无法登陆到服务器进行查询,所以加大了判断和troubleshooting的难度,好在对于 -gMIS 相当熟稔,同时对业务逻辑也很明细,再同时 -gMIS 里能够看到详细的 operatelog , 这样定位起来,即便在“虚拟主机”,看不到访问日志的情况下,基本推测出出错的流程。

错误点在于,由于未知的原因,远程访问的请求拼出类似下面这样的地址:

admin/jdo.php?act=list-addform&id=…

常规情况下,这一请求会被

admin/comm/header.inc

里的判断逻辑所阻隔,并跳转到登录页面,所使用的语句是

header(“Location: LOGIN_PAGE”);

问题恰出在此处,虽然这里设置了 header , 也即在HTTP 的response头部增加了 302 的跳转导向,但!是! header之后的语句逻辑会照样被执行,也即符合相关条件的记录仍会被更新,由于这个请求是被恶意拼接的,所以相应的数据根本就是错误的,也因此出现了开头的一幕,数据被不断的重置为空,但记录数并没有变,只是项的值被不断的填入为“”。

经上分析测试,在测服务器上快速部署了代码

exit(0);

在发现未登录用户的情况下,随即结束当前页面的业务逻辑,终止进一步操作并将页面处理权由PHP交回到Apache那里去。

虽然是个小bug,并且发现及时,但仍事后感到心有余悸。为何之前没有预料到这样的错误呢?如果没有

exit(0);

执行语句,程序页面在测试时并无任何异常,逻辑仍是按照预期的路线跳转到登录页,只是这种依赖终端浏览器的测试,不能察觉出,实际的mod和act仍旧被执行了。这里只测试了浮表,并未能使用code review的方式进行深入分析每一块逻辑和每一行语句。

软件仍是在不断使用和测试中成长的。

发表在 -gMIS, -GWA2, 编程技术, 计算机技术 | 留下评论

护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏书皮纸自粘透明磨砂加厚包书皮小学生一二三四年级上册上学期书膜全套课本书本保护套16k封面外壳防水a4彩染发剂植物纯自己在家染头发膏女2021流行色显白天然冰糖雪梨膏儿童宝宝砀山慈梨膏