如果有想学习汇编的,我有个好建议

2015-02-04 14:58:37 +08:00
 pheyer
前面看到有人提是否要学习汇编,我觉得还是有点必要的。如果是学生想学习汇编(ARM)的,还想学习游戏开发的,我建议可以这样一试:
2014年别踩白块儿这个游戏很火,是用cocos2d-x(C++)开发的,游戏本身比较简单。你可以对这个游戏进行逆向,然后复制出一个你自己的别踩白块儿。逆向的方法是结合ida的汇编代码以及F5反编译出来的伪代码进行代码逆向,当然前提是对cocos2d-x的游戏开发的一些基本元素要了解,另一方面,cocos2d-x本身是开源的,你可以在IDA中看到很多明显的api调用,这会减轻逆向的难度。
感觉有以下几个好处:
1)掌握IDA的运用
2)加强对C++的理解
3)更好地掌握汇编知识
4)学习了游戏开发
5)可以兼带学习一下怎么实现去广告破解
一举多得,这应该比你从课本上学习汇编的更有趣得多。我觉得现在的汇编课就应该这么教,要不然真没意思。
另外,最好是在自己的博客上做笔记,形成一个系列,找工作的时候亮出来,我相信会有加分的。
4728 次点击
所在节点    程序员
19 条回复
fyibmsd
2015-02-04 16:21:27 +08:00
受教了
zgxltxz
2015-02-04 17:53:46 +08:00
老啦…学x86的路过
wzt
2015-02-04 18:13:07 +08:00
基本是看intel手册的1-3卷
pheyer
2015-02-04 18:15:43 +08:00
@wzt 现在是arm时代了
yangff
2015-02-04 18:25:18 +08:00
赌5块钱你的ida是盗版的
pheyer
2015-02-04 18:49:08 +08:00
@yangff 真心买不起啊
xieyudi1990
2015-02-04 18:57:14 +08:00
第一次学可以弄本故事书参考下 (比如学校发的教材那种, 讲汇编是同时还讲讲基础, 比如什么是补码啊, 溢出和进位的区别啊, 汇编一般是哪大类操作啦, cisc risc, 是load/store型还是move型, 是gpr型还是累加器型, 等等等等)
有点底子了直接看instruction set manual
xieyudi1990
2015-02-04 19:03:20 +08:00
@pheyer arm只是商业模式刚好比较适合行业的发展. 实力我看离intel差远了.

另外指令集那个真无所谓, 常用的就那么几条. 上操作系统吧, 肯定有个kernel mode和user mode; 肯定有个页表; 肯定有个tlb... 这些东西都不会变的, 只是接口不同而已, 是软件实现还是硬件实现. 用哪个cpu翻翻手册就是了.
xieyudi1990
2015-02-04 19:06:12 +08:00
lz那个不是csapp里的点子吗
pheyer
2015-02-04 19:09:50 +08:00
@xieyudi1990 没看过,那上面说的啥?
Ge4Los
2015-02-04 19:20:40 +08:00
只学ARM汇编的话, 直接用ARM开发的IDE会不会更好些.
像keil , IAR之类的, 编译后单步执行调试. 源码, 汇编代码, 寄存器状态, 堆栈都可以跟踪到. arm指令集毕竟是RISC, 指令就那么几种.
另外补充下, 我总觉得学arm汇编会点歪技能树. 非andoroid和嵌入式开发基本上都用不上arm汇编
pheyer
2015-02-04 22:00:38 +08:00
@Ge4Los 如果不想做移动开发或者工作中根本就接触不到移动开发那就算了吧。如果有可能做移动开发,移动开发的底层基本都是arm,有时候想逆向一下啥的还真用得上汇编。你说的纯粹学汇编,偏理论了一点,有点枯燥,学生可能觉得没啥用处,提不起兴趣,很多课堂上教的东西就属于这种,学生上课上得昏昏欲睡,效果不是很好;我提供了一种一举多得的学习方法,偏实用一些,有具体的目标,一次练手,多方面收获,不更好吗?
laomutuo
2015-02-05 07:44:58 +08:00
@pheyer 别踩白块儿是安卓应用? 安卓应用不是用java开发的么?你这里用的c++?
andy1987
2015-02-05 10:42:46 +08:00
学汇编,在调试技术这块下点功夫很好,如果用应用开发那还是不要太费力的,而且目前win32汇编跟高级语言看起来没什么太多的区别了,不想以前的8086了
pheyer
2015-02-05 11:24:25 +08:00
@laomutuo 一看就是没做过游戏的,游戏开发用cocos2d-x可以跨平台,语言就是用c++了
laomutuo
2015-02-05 14:52:32 +08:00
@pheyer 额,你做游戏么,亲:)
pheyer
2015-02-05 15:43:55 +08:00
@laomutuo 做应用也做游戏,主要是iOS方面的
laomutuo
2015-02-05 16:04:57 +08:00
@pheyer 做游戏,听说都是很高薪水,30w+?亲有么,哈哈
pheyer
2015-02-05 16:09:53 +08:00
@laomutuo 只是业余时间做一下游戏而已,主要还是做应用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/168200

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX