fix compile error for openssl 1.1
This commit is contained in:
parent
8f7d22f6de
commit
e3f727dae8
7
README.md
Normal file
7
README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# mkxqimage_rev
|
||||||
|
The resverse engineering result of `mkxqimage`, which is used to extrat XiaoMi Router Rom.
|
||||||
|
|
||||||
|
## Compile
|
||||||
|
```
|
||||||
|
gcc mkxqimage.c -lssl -lcrypto -omkxq
|
||||||
|
```
|
12
mkxqimage.c
12
mkxqimage.c
@ -958,20 +958,20 @@ int verify_rsa(FILE *f, int start, unsigned int size, const unsigned char *sigbu
|
|||||||
int result; // w0
|
int result; // w0
|
||||||
EVP_PKEY *pkey; // [xsp+30h] [xbp+30h] BYREF
|
EVP_PKEY *pkey; // [xsp+30h] [xbp+30h] BYREF
|
||||||
RSA *pem; // [xsp+38h] [xbp+38h] BYREF
|
RSA *pem; // [xsp+38h] [xbp+38h] BYREF
|
||||||
EVP_MD_CTX ctx; // [xsp+40h] [xbp+40h] BYREF
|
EVP_MD_CTX* ctx; // [xsp+40h] [xbp+40h] BYREF
|
||||||
unsigned int v15; // [xsp+74h] [xbp+74h]
|
unsigned int v15; // [xsp+74h] [xbp+74h]
|
||||||
void *buf; // [xsp+78h] [xbp+78h]
|
void *buf; // [xsp+78h] [xbp+78h]
|
||||||
size_t cnt; // [xsp+84h] [xbp+84h]
|
size_t cnt; // [xsp+84h] [xbp+84h]
|
||||||
unsigned int v18; // [xsp+88h] [xbp+88h]
|
unsigned int v18; // [xsp+88h] [xbp+88h]
|
||||||
int v19; // [xsp+8Ch] [xbp+8Ch]
|
int v19; // [xsp+8Ch] [xbp+8Ch]
|
||||||
|
ctx=EVP_MD_CTX_new();
|
||||||
v18 = size;
|
v18 = size;
|
||||||
cnt = 0;
|
cnt = 0;
|
||||||
pkey = 0LL;
|
pkey = 0LL;
|
||||||
buf = malloc(0x10000u);
|
buf = malloc(0x10000u);
|
||||||
if ( buf )
|
if ( buf )
|
||||||
{
|
{
|
||||||
v19 = init_pkey(&ctx, &pem, &pkey, isSsh);
|
v19 = init_pkey(ctx, &pem, &pkey, isSsh);
|
||||||
if ( v19 )
|
if ( v19 )
|
||||||
{
|
{
|
||||||
fwrite("malloc failed\n", 1u, 0xEu, stderr);
|
fwrite("malloc failed\n", 1u, 0xEu, stderr);
|
||||||
@ -987,7 +987,7 @@ int verify_rsa(FILE *f, int start, unsigned int size, const unsigned char *sigbu
|
|||||||
cnt = v18;
|
cnt = v18;
|
||||||
else
|
else
|
||||||
cnt = v15;
|
cnt = v15;
|
||||||
if ( EVP_DigestUpdate(&ctx, buf, cnt) != 1 )// EVP_VerifyUpdate
|
if ( EVP_DigestUpdate(ctx, buf, cnt) != 1 )// EVP_VerifyUpdate
|
||||||
{
|
{
|
||||||
fwrite("error EVP_VerifyUpdate\n", 1u, 0x17u, stderr);
|
fwrite("error EVP_VerifyUpdate\n", 1u, 0x17u, stderr);
|
||||||
v19 = 1;
|
v19 = 1;
|
||||||
@ -1001,7 +1001,7 @@ int verify_rsa(FILE *f, int start, unsigned int size, const unsigned char *sigbu
|
|||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( EVP_VerifyFinal(&ctx, sigbuf, siglen, pkey) == 1 )
|
if ( EVP_VerifyFinal(ctx, sigbuf, siglen, pkey) == 1 )
|
||||||
{
|
{
|
||||||
v19 = 0;
|
v19 = 0;
|
||||||
}
|
}
|
||||||
@ -1015,7 +1015,7 @@ finish:
|
|||||||
free(buf);
|
free(buf);
|
||||||
RSA_free(pem);
|
RSA_free(pem);
|
||||||
EVP_PKEY_free(pkey);
|
EVP_PKEY_free(pkey);
|
||||||
EVP_MD_CTX_cleanup(&ctx);
|
EVP_MD_CTX_free(ctx);
|
||||||
result = v19;
|
result = v19;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user