提供个加密函数代码:#define MAX_ENCRYPT_LEN 1024void MyEncrypt(const unsigned char sMsg, int cbMsg, unsigned char sEncryptMsg, int &cbEncryptMsg){ OpenSSL_add_all_algorithms(); //产生会话密钥 unsigned char SessionKey[16]; RAND_bytes(SessionKey,16);//加密 EVP_CIPHER_CTX ctx; EVP_CIPHER_CTX_init(&ctx); if(EVP_EncryptInit_ex(&ctx,EVP_get_cipherbynid(NID_aes_128_ecb),NULL,SessionKey,NULL)) { int offseti=0; int offseto=0; int offsett=0; for(;;) { if(cbMsg-offseti<=MAX_ENCRYPT_LEN) { EVP_EncryptUpdate(&ctx, sEncryptMsg+offseto, &offsett, sMsg+offseti, cbMsg-offseti); offseto+=offsett; break; } else { EVP_EncryptUpdate(&ctx, sEncryptMsg+offseto, &offsett, sMsg+offseti, MAX_SIGN_MSG); offseti+=MAX_SIGN_MSG; offseto+=offsett; } } EVP_EncryptFinal_ex(&ctx, sEncryptMsg+offseto, &offsett); offseto+=offsett; cbEncryptMsg=offseto; } EVP_CIPHER_CTX_cleanup(&ctx);}参数解释:const unsigned char sMsg 需要解密的明文int cbMsg 明文长度unsigned char sEncryptMsg 输出密文int &cbEncryptMsg 密文长度好了,这个函数刚写的,验证了一下,是没有问题的解密与这个比较类似
1首先请安装「Root Explorer」这个app,它可以在已ROOT的手机中管理隐藏的系统核心档案。2安装完成并开启Root Explorer以後,展开「/system/etc/permissions/」路径,然後在「platformxml」上长按。 3跳出「Options」选单以後,先按一下「Permissions」,我们要更改档案的权限才能写入文字。 4此时会跳出一个警告讯息,告知你目前系统内的档案为唯读模式,需先更改为读写模式,按下「Yes」即可更改。5更改完成以後,将「Read」、「Write」、「Execute」项目都勾起来,然後按一下「OK」。 6权限更改完成以後,再次在「platformxml」上长按一次。 7跳出「Options」选单以後,这次我们点击「Open With」,选择用哪个app开启此档案。 8看到显示了一堆app,我们选择用「Text Viewer」来开启,如果读者们有其他的文字编辑app,也可以用它来开启。9找到以下两段文字以後,将内容改成跟底下一样:<permission name="androidpermissionWRITE_EXTERNAL_STORAGE" > <group gid="sdcard_r" /> <group gid="sdcard_rw" /> <group gid="media_rw" /></permission><permission name="androidpermissionWRITE_MEDIA_STORAGE" > <group gid="sdcard_rw" /> <group gid="media_rw" /></permission> 10更改完成以後,点击一下叫出选单,点击「Save Changes」储存更改,然後离开即可。 11储存成功以後,可以看到资料夹中多了一个「platformxmlbak」档案,往後要还原时,只要将「platformxml」删除,然後把「platformxmlbak」更改回原来名称即可。 12最後重新开启手机,即可让设定生效罗!NOTE:坊间已经有直接可以修改SD卡写入权限的app出现,但因为安全因素,我们还是自行手动修改比较安全。
用以下的方法可以获取一个文件的字节数:
先用fopen打开文件,然后把文件指针指向文件尾
再用ftell获得文件指针当前位置(即文件长度)
源代码:
#include "stdafxh"
#include <stdioh>
#include <iostream>
using namespace std;
int main()
{
FILE fp = NULL;
int nFileLen = 0;
fp = fopen("c:/Testtxt", "rb");
if (fp == NULL)
{
cout << "can't open file" << endl;
return 0;
}
fseek(fp,0,SEEK_END); //定位到文件末
nFileLen = ftell(fp); //文件长度
cout << "file len = " << nFileLen << endl;
return 0;
}
可以用 stat (win 下 _stat)函数直接得文件尺寸。
man 2 stat
1MFC中的方法:(C++)
CFileStatus status;
CFile::GetStatus("D:\\testtxt",status);
long lSizeOfFile;
lSizeOfFile = statusm_size;
lSizeOfFile的值就是D:\\testtxt文件的大小
2标准C获得文件大小的5种方法
(注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\testtxt")
struct stat {
dev_t st_dev; / ID of device containing file /
ino_t st_ino; / inode number /
mode_t st_mode; / protection /
nlink_t st_nlink; / number of hard links /
uid_t st_uid; / user ID of owner /
gid_t st_gid; / group ID of owner /
dev_t st_rdev; / device ID (if special file) /
off_t st_size; / total size, in bytes /
blksize_t st_blksize; / blocksize for filesystem I/O /
blkcnt_t st_blocks; / number of blocks allocated /
time_t st_atime; / time of last access /
time_t st_mtime; / time of last modification /
time_t st_ctime; / time of last status change /
}
#include "stdafxh"
#include "stdioh"
#include <sys/stath>
#include <ioh>
#include <FCNTLH>
int getfilesize()
{
int iresult;
struct _stat buf;
iresult = _stat(__FILE__,&buf);
if(iresult == 0)
{
return bufst_size;
}
return NULL;
}
int getfilesize01()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _filelength(fp);
//return NULL;
}
int getfilesize02()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize03()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize04()
{
FILE fp;
if((fp=fopen(__FILE__,"r"))==NULL)
return 0;
fseek(fp,0,SEEK_END);
return ftell(fp); //return NULL;
}
int getfilesize05()
{
FILE fp;
char str[1];
if((fp=fopen(__FILE__,"rb"))==NULL)
return 0;
for(int i = 0;!feof(fp);i++)
{
fread(&str,1,1,fp);
}
return i - 1; //return NULL;
}
int main(int argc, char argv[])
{
printf("getfilesize()=%d\n",getfilesize());
printf("getfilesize01()=%d\n",getfilesize01());
printf("getfilesize02()=%d\n",getfilesize02());
printf("getfilesize03()=%d\n",getfilesize03());
printf("getfilesize04()=%d\n",getfilesize04());
printf("getfilesize05()=%d\n",getfilesize05());
return 0;
}
以上就是关于如何调用aes02gid引擎获取ios固件的解密key全部的内容,包括:如何调用aes02gid引擎获取ios固件的解密key、如何在 Android 5.0 上获取 SD卡 的读写权限、c代码中如何获取一个文件的字节数~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)