首页
社区
课程
招聘
[讨论]阅读《Android软件安全与逆向分析》的问题
发表于: 2014-3-1 16:46 16829

[讨论]阅读《Android软件安全与逆向分析》的问题

2014-3-1 16:46
16829
有朋友介绍了《Android软件安全与逆向分析》这本书,网上查了下感觉不错,购买一本如获至宝。
按书操练起来。当读第一章的时候,按书的要求搭建了开发环境(所用版本是最新的与书上不一致)。
当读到第7-8章的时候,用NDK编译Hello3工程,使用了两种方法,一个是ndk-build,二是让eclipse自动编译,二者都编译通过,并在模拟器上运行正常。

我的问题是:我所编译出的hello文件10K,源代码中的为9K,并且源代码中hello文件的用IDA6.1可以识别出start函数,也可以进行动态调试,我所编译出的识别不出start函数,动态调试也提示入口有错。

我试了win764平台和winxp平台,结果是一样的大小都是10K,为什么我编译不出和源代码中一样的文件呢?请读过这本书的朋友指教下,谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个问题还真心没注意过。。书是翻完了 没实际操作过sorry
晚上回去试试
2014-3-1 17:17
0
雪    币: 2307
活跃值: (1023)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
使用的NDK版本不同,其中的gcc编译器在生成指令上会略有区别,而且不同版本的NDK的链接脚本可能有些许区别,因此编译出的二进制程序不一样也是正常的。
你只需要按照第七章所说的,找到__libc_init,找到最后一个LDR, RX=(off_xxx - yyy)指令,此处的off_xxx就是指向main()的指针。
2014-3-2 10:19
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢版主大神回复!我已通读第7章,知道__libc_init要传入四个参数,不过与IDA中的代码对不起号来

并未找到与之对应该的LDR, RX=(off_xxx - yyy)形式
因为程序很小,我找到了main

但是调用main的地方是这样的

然后我就傻了,找不到相关的地方

另:多谢版主移动帖子,我觉得一定有读书交流的地方,只是刚开始没找到,谢谢!
上传的附件:
2014-3-2 10:43
0
雪    币: 2307
活跃值: (1023)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
可能是IDA6.1反出来的代码没那么讲究,需要自己手动的计算偏移值。
IDA6.5反出来的代码就可以直接找到,这是你编译的Hello的反汇编截图:
上传的附件:
2014-3-2 13:33
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=非虫;1264924]可能是IDA6.1反出来的代码没那么讲究,需要自己手动的计算偏移值。
IDA6.5反出来的代码就可以直接找到,这是你编译的Hello的反汇编截图:
[/QUOTE]

原来是这么回事呀,谢谢虫大!
2014-3-2 13:53
0
游客
登录 | 注册 方可回帖
返回
//