发新帖

关于ARM汇编的学习,尽情说出你的想法

[复制链接]
19144 22
本帖最后由 ReverseFuture 于 2015-1-9 21:17 编辑

      考虑到网络上关于ARM汇编的教程多而不全(一般只是针对ARM汇编指令集),而实体教材中的ARM汇编都是掺杂在嵌入式linux系统教材中来作为某一两个章节来讲,这些更加侧重于硬件面,而不是太适合搞逆向的我们。

      所以在接下来的一段时间内,我想整理一份关于ARM汇编的学习教程,该教程预按照学习X86 汇编语言的方式来写,发布到本论坛供大家一起学习,一起进步。

      所以特开此帖,来收集大家的意见
和建议,关于应该怎么组织这个教程,以及使用什么工具,大家都可以尽情地说出来,让你的想法成为这份教程的一部分,让大家的智慧得到更大的发挥,让大家对ARM汇编的学习共同取得更大的进步。

首先,先给一份我用android NDK中带的arm-linux-androideabi-gcc.exe编译C文件得到的ARM汇编代码:

[C++] 纯文本查看 复制代码
        .arch armv5te
        .fpu softvfp
        .eabi_attribute 20, 1
        .eabi_attribute 21, 1
        .eabi_attribute 23, 3
        .eabi_attribute 24, 1
        .eabi_attribute 25, 1
        .eabi_attribute 26, 2
        .eabi_attribute 30, 6
        .eabi_attribute 18, 4
        .file        "test2.c"
        .section        .rodata
        .align        2
.LC0:
        .ascii        "Hello ARM\000"
        .text
        .align        2
        .global        main
        .type        main, %function
main:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 1, uses_anonymous_args = 0
        stmfd        sp!, {fp, lr}
        add        fp, sp, #4
        ldr        r3, .L3
.LPIC0:
        add        r3, pc, r3
        mov        r0, r3
        bl        printf(PLT)
        mov        r3, #0
        mov        r0, r3
        ldmfd        sp!, {fp, pc}
.L4:
        .align        2
.L3:
        .word        .LC0-(.LPIC0+8)
        .size        main, .-main
        .ident        "GCC: (GNU) 4.4.3"
        .section        .note.GNU-stack,"",%progbits


此代码我未做任何修改,原C代码为(先不考虑是否标准):


[C++] 纯文本查看 复制代码
int main()
{
   printf("Hello ARM");
   return 0;
}


PS:我自己收集的一些ARM汇编方面的资料,http://www.pd521.com/thread-193-1-1.html








已有1人评分 荣获致谢 理由
听鬼哥说故事 + 1 赞一个!

查看全部评分 总评分: 荣获致谢 +1 

举报 使用道具

回复

精彩评论22

花墨    发表于 2015-1-9 12:28:24 | 显示全部楼层
教程哪里多了?我怎么没发现?求分享{:3_49:}

举报 使用道具

回复 支持 反对
peterdocter    发表于 2015-1-9 13:07:19 | 显示全部楼层
花花到百度云一搜索就一堆过期产品出来:lol
RE好样我顶你。。。
居然是教逆向就用ida pro,逆出arm汇编代码进行讲解比较好。。。

举报 使用道具

回复 支持 反对
xxoo    发表于 2015-1-9 13:08:05 | 显示全部楼层
帮我打通任督二脉可好

举报 使用道具

回复 支持 反对
beijingshi1    发表于 2015-1-9 13:10:47 | 显示全部楼层
要是有个视频教程就更好了。

举报 使用道具

回复 支持 反对
challenge    发表于 2015-1-9 13:11:31 | 显示全部楼层
   支持楼主,可惜我是新手,静等楼主教程了!

举报 使用道具

回复 支持 反对
蝌蚪它大爷    发表于 2015-1-9 13:23:13 | 显示全部楼层
支持~新手,不懂怎么开始。从0基础开始吧~谢谢

举报 使用道具

回复 支持 反对
undefined    发表于 2015-1-9 13:36:26 | 显示全部楼层
支持啊!

举报 使用道具

回复
hzw007    发表于 2015-1-9 14:04:51 | 显示全部楼层
哇,真的是尽情说出想法么?那我说实话啦,要是都有示例结合ida讲解如何修改so,包括装B BL BLX 这一些指令如何修改跳转,和推算目标偏移量的计算方法就好了,包括分析的思路:handshake

举报 使用道具

回复 支持 反对
shteach001    发表于 2015-1-9 15:22:59 | 显示全部楼层
哪多了,表示从未看到过,求楼主分享~

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表