如何调用aes02gid引擎获取ios固件的解密key

如何调用aes02gid引擎获取ios固件的解密key,第1张

提供个加密函数代码:#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代码中如何获取一个文件的字节数~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9343044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存