关闭

android dump内存办法大全

1914人阅读 评论(0) 收藏 举报
分类:

1.ida运行脚本

autoi,fp,begin,end;

fp=fopen("D:\\xx.so","wb");

begin=0xAC338000;

end=0xAC393000;

for(i=begin;i<end;i++)

{

fputs(Byte(i),fp);

}

 

2.gdb dump

dump binary memoryC:\Users\DW\Desktop\baidu_jiagu\so\baidu 0xa8878000 0xA8B9C000

 

 

3.dd命令

 dd  if=/proc/1214/mem of=mmm skip=a8878000 ibs=1 count=324000 这个不行,网上误传

 

4.修改内核

dalvik/vm/oo/Class.cpp此文件的

 

initclass在加载cinit类的时候加入下面的代码

我们将so dump

 

 

自己写工具dump内存

#include<unistd.h> 

 

#include<stdio.h> 

#include<stdlib.h> 

#include<android/log.h> 

#include<elf.h> 

#include<fcntl.h> 

#include<android/log.h>

//#define LOG_TAG"snow"

 

//#defineLOGE(...)    __android_log_print(ANDROID_LOG_ERROR, LOG_TAG,__VA_ARGS__)

//使用办法

//xx pid beginaddrendaddr

int  main(intargc,char *argv[]) {

   char filename[256] = {0};

   if(4!=argc)

   {

      printf("please input xx pid beginaddr endaddr\n");

 

      exit(1);

 

   }

   printf("argv[2]=%s-->argv[3]=%s-\n",argv[2],argv[3]);

   long long beginaddr = strtoll(argv[2],NULL,16);

   long long endaddr=strtoll(argv[3],NULL,16);

   long long length=endaddr-beginaddr;

   //printf("-fuck-length=%x---\n",length);

   //printf("beginaddr=%x,endaddr=%x-\n",beginaddr,endaddr);

   sprintf(filename,"/proc/%s/mem",argv[1]);

   printf("will open filepath=%s\n",filename);

   FILE* fpsrc=fopen(filename,"r");

   FILE* fpdest=fopen("dumpMemory","wb");

   if(NULL==fpsrc||NULL==fpdest)

   {

       printf("open file error!!!\n");

       exit(1);

   }

   int c;

   fseek(fpsrc,beginaddr,SEEK_SET)

   while((c=fgetc(fpsrc))!=EOF&&length-->0)

 

   {

      fputc(c, fpdest);

   }

   fclose(fpsrc);

   fclose(fpdest);

   return 0; 

}

LOCAL_PATH :=$(call my-dir)  
include $(CLEAR_VARS)  
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog   
#LOCAL_ARM_MODE := arm  
LOCAL_MODULE    := dump  
LOCAL_SRC_FILES := dump.c  
include $(BUILD_EXECUTABLE)  

 

注意以上五种办法,目前的加壳都有反调试模块,会对mem文件进行检测,比如360会检测/proc/pid/mem文件,和监控maps文件故此上面读mem文件会导致闪退,,总的来说第四种办法最管用!!!!!

 

0
0
查看评论

Android应用的内存抓取

本文简要介绍了抓取Android应用的内存内容的操作步骤,并介绍了用WinHex工具恢复文件内容的方法。
  • yubo112002
  • yubo112002
  • 2015-12-26 16:25
  • 1404

Android动态调试so之dump内存数据

1.配置环境 一台已root手机 IDA pro6.6 Android SDK 准备工作: 1.1把Android SDK添加到环境变量中 1.2把已root手机的系统中关键so拖到本地,必要时可以静态读取,获取系统函数的偏移地址。 例如把手机系统的system/lib的文件拖到本地debuggin...
  • qq_21051503
  • qq_21051503
  • 2017-07-26 22:30
  • 639

Android 使用命令dumpsys查看程序的内存情况

android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。android程序内存一般限制在16M,当然也有24M的...
  • pugongying1988
  • pugongying1988
  • 2011-12-07 16:38
  • 5263

【android】解析dump的几种方式

在开发调试过程中,经常会遇到手机/设备crash或者dump了,memory dump是分析系统crash/dump的重要办法 在qualcomm的流程中,设备如果发生dump,会将dump的log缓存到某一个区域,用户可以利用个别工具将log取出来分析,以下就是基本qcom的基础上介绍几种获取du...
  • sinat_34606064
  • sinat_34606064
  • 2017-10-13 13:49
  • 1118

Android 反调试反内存dump总结

一切都在代码中:https://github.com/parkerpeng/DroidAnti
  • autohacker
  • autohacker
  • 2016-05-10 16:39
  • 2521

使用IDA从内存中dump指定的dex

虽然自己编译了一套能够简单够脱壳的坏境,不过使用上总感觉比较重量级。 今天只想把APK中某个动态解密,加载的dex搞出来,用IDA轻快很多。 步骤1: 首先通过cat /proc/pid/maps查看目标dex文件所在的内存地址: 可以看到我们的起始地址是:5faa2000  ...
  • XXOOYC
  • XXOOYC
  • 2016-05-09 21:32
  • 5741

Mono加密DLL也没用,借助IDA dump内存 直接提取解密后的DLL,反编译破解Unity游戏

之前有介绍过通过重新编译Mono 来加密DLL的方式,来避免Unity 游戏被反编译修改破解,然而这种方式只能防住一些小白玩家,稍微有技术的玩家分分钟就破解了,下面也介绍下一个Unity游戏是如何被破解的。
  • cp790621656
  • cp790621656
  • 2016-07-14 02:28
  • 9699

一个用于提取内存的IDA脚本

import struct start = AskAddr(0x2D590 , "start address:") print "start address:%08x"%(start) length = AskLong(0x208 , "length...
  • autohacker
  • autohacker
  • 2015-12-28 13:45
  • 1656

IDA动态调试技术及Dump内存

最近研究SO文件调试和dump内存时,为了完整IDA调试起来,前后摸索了3天才成功,里面有很多坑和细节,稍微不注意,就一直排行,需要理解每步骤的作用意义,否则就会觉得教程不对,要详细的教程可能找不到,大部分都是简单介绍,没有提醒细节和易忽视的点动态调试步骤,顺序严格如下事先准备工作 1、要求roo...
  • u010019468
  • u010019468
  • 2017-11-20 21:22
  • 348

梆梆加固之防内存dump分析

梆专业版加固技术分析 之防内存 dump 防内存 dump比较 笼统 ,本篇 只介绍 使用 inotify相关 实现 (以 BB为例)。
  • oooAooo
  • oooAooo
  • 2017-12-17 11:00
  • 148
    个人资料
    • 访问:4462次
    • 积分:118
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档
    最新评论