zoukankan      html  css  js  c++  java
  • 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下的一个可执行的二进制文件

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

  • 相关阅读:
    谈谈Ext JS的组件——组件基类:Ext.Component
    谈谈Ext JS组件之引子
    安装Compass时不能访问服务器的问题
    Android监听电池状态
    为macbook双系统的windows装驱动
    Activity中的四种启动模式
    【翻译】Ext JS 6 Beta发布
    eclipse下出现奇怪字符的解决方法
    浅谈设计模式
    【翻译】Ext JS 5:为不同设备设置不同的主题
  • 原文地址:https://www.cnblogs.com/yue31313/p/7405797.html
Copyright © 2011-2022 走看看