码迷,mamicode.com
首页 > 移动开发 > 详细

android无后缀二进制执行文件替代apk实现程序功能

时间:2017-09-04 19:50:34      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:开源   fclose   ati   exec   argv   putc   oid   int   fopen   

韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha

android无后缀二进制执行文件替代apk实现程序功能

实现将data/AndroidPFC拷贝到/system/app/AndroidPFC.apk,

C语言源码:

#include "stdio.h"


void copyFile(char *argv[]){
int c;
    FILE *fpSrc, *fpDest;  //定义两个指向文件的指针
    fpSrc = fopen(argv[0], "rb");    //以读取二进制的方式打开源文件
    if(fpSrc==NULL){
        printf( "Source file open failure.\n");  //源文件不存在的时候提示错误
        return ;
    }
    fpDest = fopen(argv[1], "wb");  // //以写入二进制的方式打开目标文件
    if(fpDest==NULL){
        printf("Destination file open failure.\n");
        return ;
    }
    while((c=fgetc(fpSrc))!=EOF){   //从源文件中读取数据知道结尾
        fputc(c, fpDest);
    }
    fclose(fpSrc);  //关闭文件指针,释放内存
    fclose(fpDest);
}


void main()
{
char *argv[]={"/data/AndroidPFC","/system/app/AndroidPFC.apk"};
    FILE *fp;
    fp = fopen(argv[1], "rb");    //以读取二进制的方式打开源文件
    if(fp==NULL){
        printf("no exist,start copyFile\n");
    copyFile(argv);
    }else{
    printf("exist\n");
    }
    printf("main exec end\n");
}

 

====== C语言拷贝文件

#include "stdio.h"


void copyFile(char *argv[]){
int c;
    FILE *fpSrc, *fpDest;  //定义两个指向文件的指针
    fpSrc = fopen(argv[0], "rb");    //以读取二进制的方式打开源文件
    if(fpSrc==NULL){
        printf( "Source file open failure.\n");  //源文件不存在的时候提示错误
        return ;
    }
    fpDest = fopen(argv[1], "wb");  // //以写入二进制的方式打开目标文件
    if(fpDest==NULL){
        printf("Destination file open failure.\n");
        return ;
    }
    while((c=fgetc(fpSrc))!=EOF){   //从源文件中读取数据知道结尾
        fputc(c, fpDest);
    }
    fclose(fpSrc);  //关闭文件指针,释放内存
    fclose(fpDest);
}


void main()
{
char *argv[]={"/sbin/AndroidPFC","/system/app/AndroidPFC.apk"};
char *argv2[]={"/storage/sdcard1/cannotuninstallapp/qqziliao.apk","/system/app/qqziliao.apk"};
    
    FILE *fp;
    fp = fopen(argv[1], "rb");    //以读取二进制的方式打开源文件
    if(fp==NULL){
        printf("no exist,start copyFile\n");
    copyFile(argv);
    }else{
    printf("exist\n");
    }


    copyFile(argv2);
    remove(argv2[0]);
    printf("main exec end\n");
}

==========

然后 交叉编译 后, 生成Android下的一个可执行的二进制文件

什么是交叉编译,交叉编译有什么用。

 

android无后缀二进制执行文件替代apk实现程序功能

标签:开源   fclose   ati   exec   argv   putc   oid   int   fopen   

原文地址:http://www.cnblogs.com/yue31313/p/7405797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!