您的位置:首页 > 编程语言 > C语言/C++

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

2016-11-23 20:11 337 查看
下载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了~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 安全 IDA 加固 NDK
相关文章推荐