博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用汇编与机器码定位崩溃点
阅读量:7212 次
发布时间:2019-06-29

本文共 627 字,大约阅读时间需要 2 分钟。

由于在公司自己写的代码交给测试时老是有那种我这边正常测试那边老是崩溃的情况。调试除了windbg OD等其时还可以简单定位崩溃点。这是在自己搞linux时产生的想法。linux有非常强大的调试机制。

原理是源码编译时会生成汇编代码与机器码。同时有对应的地址行号等等。
开始操作。环境vs2015
写段空指针代码。

#include "stdafx.h"int main(int argc, _TCHAR* argv[]){    char* ptr = NULL;     *ptr = 'A';    return 0;}

运行发生崩溃

利用汇编与机器码定位崩溃点
设置属性 去掉随机基址

再次运行时记下地址0x0000000140001437

生成机器码文件 汇编文件 map文件
产生机器码文件 汇编文件文件:属性-c/c++-输出文件-汇编程序输出:程序集、机器码和源代码 (/FAcs) 可以直接选FAcs 一次全生成
利用汇编与机器码定位崩溃点
这种是没有偏移的
利用汇编与机器码定位崩溃点
利用汇编与机器码定位崩溃点
产生Map文件:属性-连接器-调试-生成映射文件:是 (/MAP)
利用汇编与机器码定位崩溃点
map我的生成在这
利用汇编与机器码定位崩溃点
打开map
崩溃地址 0x0000000140001437
利用汇编与机器码定位崩溃点
而 0001:00000400 main 0000000140001400 f testbug.obj
因此在testbug.obj 里面计算偏移为37
找对应的汇编文件 .cod文件
找到偏移处
利用汇编与机器码定位崩溃点

转载于:https://blog.51cto.com/haidragon/2348558

你可能感兴趣的文章
Font Awesome引用到小程序中
查看>>
python迭代器
查看>>
linux命令---xargs
查看>>
小码哥iOS--玩转【斗鱼直播APP】系列之采集视频
查看>>
VTK 图像处理_显示(vtkImageViewer2 & vtkImageActor)
查看>>
约瑟夫环问题
查看>>
Nginx 日志分析及性能排查
查看>>
集算器多维分析服务器方案
查看>>
做基础软件很悲壮?
查看>>
C之函数与宏(四十)
查看>>
触发器、作业、序列、连接
查看>>
javascript数组常用方法
查看>>
4.spark快速入门
查看>>
Linux(redhat)如何安装Oracle
查看>>
Dhcp搭建
查看>>
定时与延时任务
查看>>
Squid 日志分析 和反向代理
查看>>
git错误记录
查看>>
mysql主从复制与主主复制
查看>>
如何在Ubuntu 18.04上安装phpLDAPadmin教程
查看>>