首页
社区
课程
招聘
[求助]关于C++ 调用cryptopp库 实现AES-GCM
2023-3-12 17:15 11882

[求助]关于C++ 调用cryptopp库 实现AES-GCM

2023-3-12 17:15
11882

我目前用的CryptoPP库,找资料找的头大了,是否有人熟悉,能否提供一个 demo ,
目前需要获取chrome的cookie,github有用C#实现的文章,实测有效,但本着学习的心态,想用C++实现。参考了这篇文章:手把手用C++解密Chrome80版本数据库

 

可这篇中的代码结果并不正确,但是可以发现结果的格式(包括特征和长度)都和正确的cookie值近似。调试后个人认为错误就在GCM的解码部分,又分析了网上其它的代码却发现他们在GCM解码部分原理相同。求助,希望有大佬指点出是什么原因。(手把手解密Chrome80版本数据库链接:https://www.freebuf.com/sectool/232490.html)


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 3673
活跃值: (3693)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Mxixihaha 2023-3-12 19:32
2
1
#include <crypto/aes.h>
#include <crypto/modes.h>
#include <crypto/filters.h>
#include <string>

using namespace std;
using namespace CryptoPP;



#pragma comment(lib,"cryptolibD32.lib")




string aes_encrypt(string& plain, string& key) {
	ECB_Mode<AES>::Encryption e((unsigned char *)key.c_str(), key.length());
	string cipher;
	StringSource ss(plain, true,
		new StreamTransformationFilter( e,
		new StringSink( cipher ),
		StreamTransformationFilter::NO_PADDING) );
	return cipher;
}


最后于 2023-3-12 19:33 被Mxixihaha编辑 ,原因:
雪    币: 144
活跃值: (1225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
林动11 2023-3-19 16:46
3
0
我做过一个解这个的,其实主要是80后主要采用的是AES-GCM,通过判断密文的前几位来看,80前的主要是用的windows提供的有一个加密的函数叫cryptprotect的什么.解密的结果长度和特征不匹配什么的,是因为sqlite取值的时候,没用对,应该sqlite3_column_text,然后用sqlite3_column_bytes获取密文的长度,再丢到解密算法中去解密.
游客
登录 | 注册 方可回帖
返回