dump内存记录

File选项中找到script command

//单行也需要用{}括起来

//IDC
static main()
{
    auto i,fp;
    fp = fopen("d:\\dump","wb");
    auto start = 0x47e060;
    auto size = 90000;
    for(i=start;i<start+size;i++)
    {
        fputc(Byte(i),fp);
    }
    fp.close();
}

//python
import idaapi
start_address = 0x47e060
data_length = 90000
data = idaapi.dbg_read_memory(start_address , data_length)
fp = open('d:\\dump1', 'wb')
fp.write(data)
fp.close()
    
    
    
dump出来得到是一个odex文件,通过下面的命令可以转成对应的smali文件:

java -jar baksmali.jar -x dump.odex -d .


如何dump内存,生成的文件为odex格式,需要进一步反编译才能查阅。先是通过baksmali工具转成smali格式文件,然后再通过smali工具把smali格式逆向dex。


通过java命令运行baksmali包把odex格式逆向输出到随意命名out文件夹下

    java -jar  baksmali-2.2.2.jar d dump.odex -o out
    
同样命令把out下内容转成dex
    java -jar smali-2.2.2.jar a out -o classes.dex

这时候就可以把classes.dex通过工具直接查看反编译内容了。

<think> 首先,用户的问题是:“dump内存时间怎么看”,翻译成英文是“how to view dump memory time”。这似乎是在问如何查看或分析内存转储(dump)的时间信息。内存转储通常指的是进程崩溃时生成的核心转储文件(core dump),或者是系统级别的内存转储。 关键点是“时间”,所以我需要解释如何从内存转储中获取时间相关信息。时间可能包括: - **转储的创建时间**:文件系统时间戳。 - **事件时间**:如崩溃发生的时间。 - **进程运行时间**:进程启动时间、运行时长等。 我的回答应该用中文,因为用户指定了“请使用中文回答问题”。 回答结构: 1. **解释含义**:简要说明什么是内存转储及其时间相关方面。 2. **方法**:提供实际查看时间的方法。 - 对于文件时间:使用操作系统命令(如Linux的 `ls -l` 或Windows的文件属性)。 - 对于事件时间:使用工具分析转储文件(如 `gdb` 用于core dumps,或WinDbg用于Windows minidumps)。 - 对于进程时间:在分析工具中查看。 在回答末尾,必须添加3-5个相关问题,第一行必须是“§§相关问题§§”,并且禁止换行分散;所有相关问题在一行或连续列出。 相关问题示例: - 需要基于用户的问题和我的回答来提出。 - 用户问题焦点在“时间”,所以问题可以扩展到时区、分析工具、常见问题等。 确保回答完整: - 用户问题是“dump内存时间怎么看”,我会覆盖如何查看内存转储的时间信息。 - 用中文响应。 最终回答结构: 1. 回答问题。 2. 提供相关命令或工具示例(可选代码,但不是必须;用户问题中没有指定语言)。 3. 以“§§相关问题§§”开头的问题列表。 相关问题想法: 1. 如何确定内存转储事件的确切时间? 2. 在分析内存转储时,时间信息对故障排除有何帮助? 3. 不同操作系统下查看内存转储时间的方法有何不同? 4. 如何查看内存转储中进程的运行时间? 5. 时间戳是否受时区影响?如何转换? 确保相关问题有3-5个,数字列表形式。 现在,构建回答: - 开头:解释问题。 - 方法部分: - Linux/Unix:使用 `stat` 或 `ls -l` 查看文件时间;使用 `gdb` 查看内部时间。 - Windows:文件属性;使用WinDbg。 - 通用:提及工具如 `strings` 或日志。 - 结束:问题列表。 </think>### 如何查看内存转储(dump)的时间信息 内存转储(dump)是系统或进程崩溃时生成的文件,用于记录内存状态。时间信息通常包括: - **文件创建时间**:转储文件的生成时间(文件系统时间戳)。 - **事件时间**:如崩溃发生的时间(记录在转储文件内部)。 - **进程相关时间**:进程启动时间或运行时长(通过分析工具获取)。 #### 查看方法(以常见操作系统为例): 1. **文件系统时间(创建时间)**: - **Linux/Unix**:使用终端命令查看文件时间戳: ```bash ls -l /path/to/core.dump # 显示创建时间(例如:-rw------- 1 user user 256M Jun 5 14:30 core.dump) ``` 或使用 `stat` 命令获取更详细信息: ```bash stat /path/to/core.dump ``` - **Windows**:通过文件属性查看: - 右键点击转储文件(如 `memory.dmp`)→ “属性” → “常规”标签,查看“创建时间”。 - 或使用 PowerShell: ```powershell Get-ItemProperty -Path "C:\path\to\memory.dmp" | Select CreationTime ``` 2. **事件时间(崩溃发生时间)**: - 需要分析转储文件内容: - **Linux/Unix(使用 GDB)**: ```bash gdb -c /path/to/core.dump # 加载转储文件 (gdb) info registers # 查看寄存器,可能包含时间线索 (gdb) bt # 查看调用栈,部分系统会记录时间 ``` 结合系统日志(如 `/var/log/syslog`)匹配时间。 - **Windows(使用 WinDbg)**: 安装 WinDbg 后: ```cmd windbg -y SymbolPath -i ImagePath -z DumpFile.dmp !analyze -v # 分析报告通常会显示崩溃时间 ``` 3. **进程相关时间**: - 在分析工具中查看: - 在 GDB 或 WinDbg 中,使用命令如 `!peb`(Windows)或 `info proc`(Linux)获取进程启动时间。 - 例如,在 WinDbg: ```cmd !peb # 显示进程环境块,包含创建时间戳 ``` #### 注意事项: - 时间可能基于 UTC 或本地时区,需检查系统设置。 - 如果转储文件不完整,时间信息可能缺失;建议结合系统日志(如 Linux 的 `dmesg` 或 Windows 的事件查看器)。 - 工具推荐:Linux 使用 `coredumpctl`,Windows 使用 Event Viewer(事件查看器)辅助分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值