2012年9月7日

摘要: 尾声上节中我们已经找到问题的罪魁祸首: ASN1 对 INTEGER 类型的编解码出现问题google 一下,查到一篇文件《ASN.1/BER/DER 编码子集入门指南》,其中关于 INTEGER 的部分,综述如下INTEGER 类型表示任意的整数。INTEGER 值可以为正数、负数或 0,具有任意大小,采用简单定长编码在 X.509 证书中 INTEGER 类型用于表示证书的版本号和序列号具体编码上,INTEGER 的内容 V 用补码表示(记得TLV格式吗),并使用最少的字节,例如数值 0 编码为一个字节: 0x00其完整的 ASN1 编码就是 02 01 00,共 3 个字节(TLV)在我 阅读全文
posted @ 2012-09-07 23:42 efzju 阅读(1941) 评论(2) 推荐(1) 编辑
 
摘要: 上节,我们利用函数运行树对错误进行了初步定位读者可能会问: VC 的调试功能很强大,为什么不利用单步跟踪来定位?这是因为,对现有代码单步跟踪时,函数帧栈会发生意想不到的变化乍一听很不可思议,那就让我们在函数 ASN1_item_ex_d2i 调用 asn1_template_ex_d2i 的地方(case ASN1_ITYPE_SEQUENCE 分支)下断点, F5 启动,程序在中断处的调用栈为> openssl-0.9.8e.exe!ASN1_item_ex_d2i openssl-0.9.8e.exe!ASN1_item_d2i openssl-0.9.8e.exe!d2i_X509 阅读全文
posted @ 2012-09-07 01:13 efzju 阅读(2051) 评论(0) 推荐(0) 编辑