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


    韩梦飞沙  韩亚飞  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. ");  //源文件不存在的时候提示错误
            return ;
        }
        fpDest = fopen(argv[1], "wb");  // //以写入二进制的方式打开目标文件
        if(fpDest==NULL){
            printf("Destination file open failure. ");
            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 ");
        copyFile(argv);
        }else{
        printf("exist ");
        }
        printf("main exec end ");
    }

    ====== 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. ");  //源文件不存在的时候提示错误
            return ;
        }
        fpDest = fopen(argv[1], "wb");  // //以写入二进制的方式打开目标文件
        if(fpDest==NULL){
            printf("Destination file open failure. ");
            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 ");
        copyFile(argv);
        }else{
        printf("exist ");
        }


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

    ==========

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

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

  • 相关阅读:
    CF1580B Mathematics Curriculum
    [机房测试]变异大老鼠
    http_缓存
    UDP_概述
    记录: webAssembly 延申
    Event
    NetWork_timeLine
    基于Typora的Latex代码书写并移植到word中
    ZooKeeper学习总结
    HBase学习总结
  • 原文地址:https://www.cnblogs.com/yue31313/p/7405797.html
Copyright © 2020-2023  润新知