Here is my interested courese:

E & CE 611: Advanced Digital Communications
Textbook: J. G. Proakis, Digital Communications, fourth edition, McGraw–Hill, 2001;
course notes for E&CE 611.
Reference: R. G. Gallager, Principles of Digital Communication, Cambridge University
Press, 2008.

ECE 604 Stochastic Processes
Text: Sheldon M. Ross, Introduction to Probability Models, 9th ed., Academic Press, 2007
(call number: QA273 .R84 2007). The main focus will be Chapters 1 to 7 and Chapter 10.

ECE 750T17: Data and Knowledge Modelling and Analysis
References
Margaret Dunham, Data Mining Introductory and Advanced Topics, ISBN: 0130888923, Prentice Hall, 2003.
R. O. Duda, P. E. Hart and D. G. Stork, Pattern Classification (2nd ed.), John Wiley and Sons,
2001.

E&CE 710 Topic 4
Sequence Design and Cryptography, Spring 2008
Course Text:
1. Chapter 4, and part of Chapter 10, S.W. Golomb and G. Gong, Signal Design for Good
Correlation – for Wireless Communication, Cryptography and Radar, Cambridge University
Press, 2005.
2. Lecture notes for crypt part.
3. Chapters 1-4, L.D. Chen and G. Gong, Communication System Security, draft, 2008.

E&CE 710(2) Wireless Communication Networks (S’08)
Schwartz, M., Broadband Integrated Networks, Prentice Hall, 1996. (Call
No.- TK5103.75.S38)
Mark, J.W., and Zhuang, W., Wireless Communications and Networking,
Prentice Hall, 2003.

E. A. Lee and P. Varaiya, Structure and Interpretation of Signals and Systems, Addison-Wesley, 2003
proakis’ digital communication
rapport’s wireless communiction
Simon Haykin ‘adaptive filter theory"

15位的身份证号
dddddd yymmdd xx p
18位的身份证号
dddddd yyyymmdd xx p y
其中dddddd为地址码(省地县三级)18位中的和15位中的不完全相同
yyyymmdd yymmdd 为出生年月日
xx顺号类编码
p性别
18位中末尾的y为校验码,在网上可以找到算法
将前17位的ascii码值经位移、异或运算结果不在0-9的令其为x

18位身份证标准算法:
18位身份证标准在国家质量技术监督局于1999年7月1日实施
的GB11643-1999《公民身份号码》中做了明确的规定。
GB11643-1999《公民身份号码》为GB11643-1989《社会保障
号码》的修订版,其中指出将原标准名称“社会保障号码”更名
为“公民身份号码”,另外GB11643-1999《公民身份号码》从实
施之日起代替GB11643-1989。
GB11643-1999《公民身份号码》主要内容如下:
一、范围
该标准规定了公民身份号码的编码对象、号码的结构和表现
形式,使每个编码对象获得一个唯一的、不变的法定号码。
二、编码对象
公民身份号码的编码对象是具有中华人民共和国国籍的公民。
三、号码的结构和表示形式
1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校
验码组成。排列顺序从左至右依次为:六位数字地址码,八位数
字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,
按GB/T2260的规定执行。
3、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,
年、月、日代码之间不用分隔符。
4、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同
日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配
给女性。
5、校验码
(1)十七位数字本体码加权求和公式
S = Ai * Wi, i = 2, … , 18
Y = mod(S, 11)
i: 表示号码字符从右至左包括校验码字符在内的位置序号
Ai:表示第i位置上的身份证号码字符值
Wi:表示第i位置上的加权因子
i: 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
(2)校验码字符值的计算
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
广东省汕头市: 440524188001010014

15位身份证标准算法
dddddd yymmdd xx p
dddddd:地区码
yymmdd:出生年月日
xx:顺号类编码,无法确定
p:性别,男的奇数女的偶数
18位的:
dddddd yyyymmdd xxx y
dddddd:地区码
yyyymmdd:出身年月日,为了应付千年虫问题,年升成4位数
xxx:顺号类编码,无法确定。但是奇数分配给男性,偶数分配给女性
y:校验码,最麻烦的地方
校验码的计算方法:
假如某身份号码34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1)
公式(1)中:
i—-表示号码字符从由至左包括校验码在内的位置序号;
ai—-表示第i位置上的号码字符值;
Wi—-示第i位置上的加权因子
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 (加权因子,固定的数值)
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根据公式(1)进行计算:
∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189
189 ÷ 11 = 17 + 2/11
∑(ai×Wi)(mod 11) = 2
然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结果为10:
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为 34052419800101001X。
这样,按以上的算法,加上我的这个行政区代码数据库,除了顺号类编码以外所有的数字都可以确定了。

注:数据库是根据中华人民共和国国家统计局截至2003年6月30号的数据,但是之前有修改过的数据,详情见:http://www.stats.gov.cn/tjbz/index.htm。所以,假如是太早颁发的身份证在地区代码上可能有出入。可以参考国家统计局的数据

6月 17th, 2008linux 下的下载工具

Wget
Wget是一个十分常用命令行下载工具,Wget使用格式如下:
#wget [选项] [下载地址]
Wget常用参数
-b:后台下载,Wget默认的是把文件下载到当前目录。
-O:将文件下载到指定的目录中。
-P:指定保存文件的目录。 
-N:don’t re-retrieve files unless newer than
-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。
-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。    
此外,Wget还可下载整个 网站,如下载http://man.chinaunix.net整个Man手册中心。
只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net 其中-r参数是指使用递归下载,
-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。
更多参数,请#man

Downloader for X    
简称为D4X是Linux下功能强大的图形化下载工具。支持HTTP与FTP协议,具有类似NetAnt和FlashGet等多线程、断点续传下载等功能。
#感觉d4x下载速度不行, 明明网络没问题,它就是下载不快-_-!!

Prozilla    
Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。
可到http://prozilla.genesys.ro/下 载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:
#tar zxvf prozilla-1.3.7.4.tar.gz
#cd prozilla-1.3.7.4
#./configure
#make
#make install
Prozilla命令格式如下: #proz [参数] [下载地址]
常用的选项有:
-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。
-P, –directory-prefix=DIR:指定将下载的文件保存在DIR/目录。
  -r, –resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令:
#proz -k=5 url
这样便以5线程进行文件的下载,并将文件保存到当前目录。
和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。

linux下,MMS,RTSP多线程下载工具dget
dget是一个基于Linux平台的多线程下载工具, 采用C++开发。主要支持FTP, HTTP, MMS, RTSP协议下载, 目前为止主要实现了FTP, HTTP, MMS,RTSP协议的多线程下载。每个下载任务支持的最大线程数限制为10个.
下载: http://gforge.oss.org.cn/frs/?group_id=62&release_id=59
安装很简单, tar ….&& make install&&dge

从生成器逆向探寻SWF网马加密
作者:Raullen

Adobe Flash漏洞是这段时间的明星漏洞,大街小巷都闹的沸沸扬扬。但除了各别“吃草的”懂得个中奥妙,大多数的马迷们只能望马心叹,及时抓到了16、28、45、47、115等各个版本的恶意SWF也是无从下手。这是因为这个网马不同于传统货,并不以unescape,16进制这些字符串表达形式的变换来取悦于观众,因为溢出构造在Flash内部,赋予了制作者以更多的操作空间,可以通过编程来实现比较复杂的Shellcode加密。这也许也是将来网马的发展方向所在。
今日,在某大侠的blog上发现了该网马的生成器,于是便琢磨着逆向看看,从而进一步的研究SWF网马的构造。顺便说一句,大侠已经提供了手工修改exe地址为明文的方法,这里不再复述,但后文会探究这样修改的原理。
探究过程开始。
首先考虑反汇编看看asm来找到生成算法,从而破解这匹马。无奈PEID提示“WinUpack 0.39 final -> By Dwing”— 一个猛壳,就不想费时间去脱了。方法论是一门很重要的学问。此处,我的白盒测试受阻,迅速转到黑盒测试。
用该大侠的生成器生成三个样本SWF,其中地址分别为http://www.0xxx.cn/1111.exe,http://www.0xxx.cn/2222.exe,http://www.0xxx.cn/3333.exe。然后用WInhex打开这三个SWF比较器十六进制代码,从而定位URL在文件中何处。结果比较结果如下:

1111: 000003beh: 4C 77 4F 77 ; LwOw
2222: 000003beh: 4F 74 4C 74 ; OtLt
3333: 000003beh: 4E 75 4D 75 ; NuMu

从中不难看出两点。第一,加密生成的地址有某种规律可循,如LwOw、OtLt、NuMu,似乎是异或加密(这里做协议分析和解密的同学应该会比较明显的看明白)。第二、看出四个字符的密文对应了四个字符的明文,因此我们可以从地址3beh大胆的往前数strlen(“http://www.0xxx.cn/”)个字符从而找到URL的头字符2E。
定位好了位置便开始着手分析其加密方式,这里需要一点经验和灵感。我用了比较分析的方法得出结果,如下面4行所示。其中行1是我输入的URL地址,这是一个已知量,行2是从地址3abh(往回数,数出来的)起的密文值,供给strlen(“http://www.0xxx.cn/1111.exe”)个字符。行3是行1的ASCII码表示。行4是由行1、2、3推演出来的未知量,也是该马加密的直接密钥。
行1:http://www.0xxx.cn/1111.exe (3aah) 0×60
行2:2E 00 32 05 7C 59 69 00 31 0F 68 49 3E 4E 20 55 25 12 69 4C 77 4F 77 51 23 F8 23
行3:68 74 74 70 3A 2F 2F 77 77 77 2E 30 78 34 66 2E 63 6E 2F 31 31 31 31 2E 65 78 65
行4:46 74 46 75 46 76 46 77 46 78 46 79 46 7A 46 7B 46 7C 46 7D 46 7E 46 7F 46 80 46
但是行4是怎么得出的呢?首先,我认为这是异或加密,因此我作出的尝试是如何将行2的某字符进行某种异或(例如和其之前或之后的字符XOR)从而得到结果行3。类似于一个一元一次方程:行2 ^ X=行3,求X。思路一定,那么就需要提及异或运算一个很重要的性质:如果X^Y=Z,那么X^Z=Y或者Y^Z=X。所以在解上述方程时,我运用了这个性质,将行2和行3的每个字符一次异或就得到了行4。部分算法代码如下:
if (bopen==true)
{
int ifd = (int)*(p+0xfd);
int ilen = (ifd-83)*2;
int varkey = (int)*(p+0×3aa);
int conkey = (int)*(p+0×3a9);
char buff[1024];
memset(buff,0×00,1024);

for (int i=0;i if (i%2==0)
{
buff[i]=(char)((int)conkey^(int)*(p+0×3ab+i));
}
if (i%2==1)
{
varkey++;
buff[i]=(char)((int)varkey^(int)*(p+0×3ab+i));
}
}

//分析成功
}
else //分析失败

稍作观察便可发现行4是一个很有规律的数列,奇数项从0×74依次递减,步长为一,偶数项恒威0×46。观察网马的Hex,迅速发现0×74来源于行2首字符(0×2E)的前一个字符(0×73)加1,因此我们知道了原来3aah处字符为加密的直接密钥的一部分。而0×46则来源于3aah 的前一个字节3a9h,是直接密钥的另一部分构成。

以上是需要修改的主要地方。另外在这位大侠的某篇文章中提及了如果欲将URL改为明文方式至于网马中,需要将0fdh位修改为0×51。那么说明了这一位与网址加密有某种联系。于是第二次运用黑盒法,作了如下测试;
URL值 0fdh位值 URL长度
http:// 0×56/86 7
http://w 0×57/87 8
http://ww 0×57/87 9
http://www 0×58/88 10
http://wwww 0x 58/88 11
http://wwwww 0x 59/88 12
http://wwwwww 0x 59/88 13
http://wwwwwwwww 0x 5b/91 17
http://qqqqqqqqq 0x 5b/91 17

实验结果是一个简单的数列,稍加分析可以看出0fdh位值的规律:83+strlen(URL)/2 (strlen(URL) 中 奇数-1 偶数不变)。按照这位大侠的说法,若将0fdh改成0×51就相当于异或部分的URL长度为0了,于是变为明文。实在是很巧妙。部分算法代码如下:
综上所述,本文设计了两个巧妙的黑盒测试避开了手动脱壳和反汇编带来的巨大工作量,同时也基本阐述了SWF的构造和解密,随文的是英雄Adobe Flash网马综合分析器。


© 2007 Raullen的上善若水 | iKon Wordpress Theme by Windows Vista Administration | Powered by Wordpress