[Android]安全第一步,使用IDA初步调试一个c/c++的exe文件


下载ida,注意要安装python2.7,按照完毕后可以直接进行反编译。之所以先使用C/C++作为第一个程序,是因为win程序可以简单的理解,当然如果没有对应的环境可以略过这一步,权当做是伪代码即可。

首先在c\c++编译环境中敲入以下代码,然后debug
# include<stdio.h>
 
char char_average(chararray[],int count)
{
    int i;
    char average;
    average = 0;
    for(i = 0 ; i< count ;i++)
        average += array[i];
    average /= count;
    return average;
}
 
int int_average(intarray[],int count)
{
    int i;
    int average;
    average = 0;
    for(i = 0 ; i< count ;i++){
        average += array[i];
    }
    average /= count;
    return average;
}
int main(){
    char chars[] = {1,2,3,4,5};
    int ints[] = {1,2,3,4,5};
    printf("charsaverage = %d\n",char_average(chars,sizeof(chars)));
     printf("intsaverage = %d\n",int_average(ints,sizeof(ints)));
     getchar();
}




以下是结果,,错误的主要原因因为是应该在调用函数int_average的时候,应该int_average(ints,sizeof(ints)/sizeof(ints[0])),由于char占1个字节,而int不是,32位机器上面占有4位,结果出错,下面继续分析。


打开ida,然后open打开debug文件下的exe文件



然后选择第一个

 

一直ok到底,

在functions window找到要查看的函数int_average



然后右键添加断点

 


然后在本地进行调试,选择windbg debuger,



之后按工具栏的绿色start按钮或者F9快捷键,


到断点区域点击



从而展开



点击进入就会发现进入了main函数就看到了原始参数数据,




然后选中想要查看的行的数据,点击


即可查看对应变量的值,然后一切就ok了~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值