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下的一个可执行的二进制文件

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

  • 相关阅读:
    C++ string 类的 find 方法实例详解
    linux系统中errno与error对照表
    tshark (wireshark)笔记
    自己签发免费ssl证书
    Go语言练习:网络编程实例——简易图片上传网站
    java开源工具包-Jodd框架
    数据库性能瓶颈解决方案
    [转载]如何快速学习一门技术
    [转载]IBM公司发布了最新的power7服务器p750 p770 p780
    计算机组成原理 — 指令系统
  • 原文地址:https://www.cnblogs.com/yue31313/p/7405797.html
Copyright © 2011-2022 走看看