当前位置: 首页 > news >正文

做游戏破解版的网站爱站网注册人查询

做游戏破解版的网站,爱站网注册人查询,做网站费用分摊入什么科目,广州网站推广多少钱文章目录 一、尝试在sha.c中添加新的函数二、添加自定义算法2.1 添加对应文件2.2 相关配置2.3 编译运行 一、尝试在sha.c中添加新的函数 在尝试添加新算法前,我先尝试在原有的旧算法中添加一个新函数,看是否能被编译并生成对应的动态链接库。 关于open…

文章目录

    • 一、尝试在sha.c中添加新的函数
    • 二、添加自定义算法
    • 2.1 添加对应文件
    • 2.2 相关配置
    • 2.3 编译运行

一、尝试在sha.c中添加新的函数

在尝试添加新算法前,我先尝试在原有的旧算法中添加一个新函数,看是否能被编译并生成对应的动态链接库。

关于openssl的编译过程可以参考我之前的文章:Ubuntu中安装OpenSSL

首先我们下载openssl1.1.j(注意这里使用了1.1.x的版本)

之后在crypto/sha/sha256.c中,添加下列语句

/*原有的内容*/
unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md)
{SHA256_CTX c;static unsigned char m[SHA256_DIGEST_LENGTH];if (md == NULL)md = m;SHA256_Init(&c);SHA256_Update(&c, d, n);SHA256_Final(md, &c);OPENSSL_cleanse(&c, sizeof(c));return md;
}
/*添加的内容开始*/
int test_ab(int a,int b){return a + b;
}
/*添加的内容结束*//*原有的内容*/
int SHA224_Update(SHA256_CTX *c, const void *data, size_t len)
{return SHA256_Update(c, data, len);
}

由于该文件引用了#include <openssl/sha.h>,而我们需要将我们自己写的test_ab函数添加到对应的动态链接库中,因此还需要在头文件中声明我们自己写的这个函数

//原有的函数
unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md);
void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
//新增的函数
int test_ab(int a,int b);

在添加完对应的函数之后,我们需要对整个项目进行重新编译

./config

在完成这一步之后,如果我们之间make,则会得到如下错误:test_ab does not have a number assigned,这里我参考了另一篇博客,解决了这个问题:openssl does not have a number assigned

因此,在执行完上面的命令后,我们还需要执行make update

make update

之后再执行make和make install即可

make
sudo make install

就可以生成对应的动态链接库了。

在生成对应的动态链接库后,我们可以编写一个函数调用我们刚刚添加的算法

#include <stdio.h>  
#include <openssl/sha.h>  int main() {int a = 10;int b = 21;printf("%d\n",test_ab(a,b));  return 0;
}

之后,我们对该文件进行编译并链接到对应的动态链接库(若按照下面的命令执行,应将动态链接库拷贝到main1.c所在的路径下)

gcc main1.c -L. -lssl -lcrypto -o main1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

之后执行,即可输出结果

二、添加自定义算法

在完成了上面的在已集成算法中添加新函数的功能后,我们更进一步,添加自己定义的算法。在这里,我部分参考了这个网址:How to Integrate a Symmetric Cipher

2.1 添加对应文件

首先,假设我们要定义一个新的名为spear的算法,我们首先需要在crypto目录中新建一个名为spear的目录,之后再在这个目录中新建一个spear.cbuild.info,之后填充这两个文件的内容

spear.c,在该文件中自定义了很多函数

#include <openssl/spear.h>
#include <stdio.h>int spear(){printf("%s\n","Spear execute!");return 199;
}int spear_add_ab(int a,int b){return a + b;
}int spear_sub_ab(int a,int b){return a - b;
}

build.info,定义了config时的源文件的路径

LIBS=../../libcrypto
SOURCE[../../libcrypto]=\spear.c

由于spear.c文件中添加了对应的头文件,而此时我们还没有新建该头文件,因此我们需要在include/openssl目录下新建一个头文件spear.h

int spear();
int spear_add_ab(int a,int b);
int spear_sub_ab(int a,int b);

2.2 相关配置

在完成相关函数编写后,我们需要将自定义的算法进行配置

首先改变cofig文件中的内容,再最后加上spear

for i in aes aria bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha sm2 sm3 sm4 spear
doif [ ! -d $THERE/crypto/$i ]thenoptions="$options no-$i"fi
done

之后在Configure中进行如下修改,再最后加上spear

$config{sdirs} = ["objects","md2", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", "blake2", "siphash", "sm3","des", "aes", "rc2", "rc4", "rc5", "idea", "aria", "bf", "cast", "camellia", "seed", "sm4", "chacha", "modes","bn", "ec", "rsa", "dsa", "dh", "sm2", "dso", "engine","buffer", "bio", "stack", "lhash", "rand", "err","evp", "asn1", "pem", "x509", "x509v3", "conf", "txt_db", "pkcs7", "pkcs12", "comp", "ocsp", "ui","cms", "ts", "srp", "cmac", "ct", "async", "kdf", "store", "spear"];

2.3 编译运行

编译运行的步骤和上面往sha.c中添加算法的一样,唯一需要注意的就是执行完config之后一定要运行make update函数,否则不会将我们写的算法添加到动态链接库中。

在完成./configmake updatemakesudo make install之后,会生成最新的动态链接库,现在我们需要自己写一个main.c文件调用对应的函数

#include <stdio.h>  
#include <openssl/spear.h>  int main() { printf("%d\n",spear());printf("%d\n",spear_add_ab(100,76));printf("%d\n",spear_sub_ab(100,76));return 0;  
}

之后的编译步骤与上面相同,只需要把main1.c换成main.c即可,即可输出对应的结果

在这里插入图片描述

http://www.zhongyajixie.com/news/38899.html

相关文章:

  • 最好的免费logo设计网站网站统计数据
  • 网站设计主要内容农产品网络营销策划书
  • 网站未备案或已封禁如何在百度发布信息
  • 专门做衬衣网站三生网络营销靠谱吗
  • 网站底部放什么百度关键词工具入口
  • 西安做网站哪家最便宜广州网站排名专业乐云seo
  • 淘宝网站的订单管理怎么做做百度推广的业务员电话
  • 全国最新实时大数据百度搜索引擎seo
  • 做兼职网站哪个靠谱吗兰州seo新站优化招商
  • 做网站的经验和体会网站统计
  • 物业网站开发sem推广是什么意思呢
  • 宝安区是深圳最差的区seo推广专员工作内容
  • 中国工程机械网官网沈阳网站优化
  • 连城县住房和城乡建设局 网站cilimao磁力猫搜索引擎
  • 微网站定制开发网页制作成品
  • 网络建设的流程网站百度搜索app免费下载
  • 个人如何做购物网站 关于支付接口seo自学教程
  • 上传网站图片处理网络seo首页
  • 做一下网站博彩互联网营销怎么做
  • iis部署网站项目旅游企业seo官网分析报告
  • 企业网站 流程专业营销团队外包公司
  • 广州建站快车网页设计软件有哪些
  • asp网站如何发布企业网站有哪些
  • 网站备案要花钱吗长沙seo网络公司
  • 大连网站建设怎么做学市场营销后悔死了
  • 大连模板网站制作sem扫描电镜
  • 管理课程培训视频教程全集惠州百度seo在哪
  • 电子商务网站建设的风险分析百度指数人群画像
  • 公司网站无法打开2020年十大关键词
  • 天津搜索引擎推广seo前景