美文网首页android
python中调用c代码,传入NULL的问题

python中调用c代码,传入NULL的问题

作者: fcc_load | 来源:发表于2017-09-28 16:21 被阅读0次

    在逆向一个android so的时候,发现一个改良的ecdh算法,在用python调用EC_POINT_point2oct的时候发现最后一个参数是NULL,但是写入0,False,None都报错,最后(注意str是bytes类型):

    from OpenSSL import crypto
    import struct
    import os
    
    
    class Ecdh():
        
        def __init__(self):
            self.ssl_lib = crypto._lib
            self.ssl_ffi = crypto._ffi
            pass
            
            
        def gen_ecdh_key_ex(self,bo,str1,str2,str3):
        
            str_len = len(str1)+len(str2)+len(str3)
            all_str = str1 + str2 + str3
            
            ecdh2 = self.ssl_lib.EC_KEY_new_by_curve_name(711)
            self.ssl_lib.EC_KEY_generate_key(ecdh2)
            point = self.ssl_lib.EC_KEY_get0_group(ecdh2)
            group = self.ssl_lib.EC_KEY_get0_public_key(ecdh2)
            mylen = self.ssl_lib.EC_POINT_point2oct(point,group,2,all_str,str_len,self.ssl_ffi.NULL)
    

    也可以使用

    from cffi import FFI
    
    ffi = FFI()
    ffi.NULL表示空
    

    相关文章

      网友评论

        本文标题:python中调用c代码,传入NULL的问题

        本文链接:https://www.haomeiwen.com/subject/kfcvextx.html