为了CTF比赛,如何学习逆向和反汇编?怎样可以快速学会反汇编分析
本文目录
- 为了CTF比赛,如何学习逆向和反汇编
- 怎样可以快速学会反汇编分析
- 想找一些游戏逆向,反汇编相关的教程,谁能推荐一下
- 反汇编和汇编程序设计之间关系
- 怎么学会读懂反汇编语言 就是od里面那种 我只会一些比如jmp je jnz 这些指令
- 如何学习汇编语言和反汇编相关问题
- 自解压的exe文件怎么破解密码
- 推荐几款C++和反汇编的书·· 简单点
- 如何反汇编一个软件
为了CTF比赛,如何学习逆向和反汇编
需要看的书籍:
1.Intel 微处理器.
2.Windows环境下32位汇编语言程序设计
3.WindowsPE权威指南
4.C++反汇编与逆向分析技术揭秘
5.加密与解密第三版
6.IDA Pro权威指南
需要掌握的工具:
静态反汇编工具: IDA Pro
动态反汇编工具: ollydbg
Windows内核调试工具: windbg
看这些书的基础:熟悉C++,熟悉编程.针对不同的语言,你也要知道一些.至此,软件逆向你就入门了.此时参加CTF我想是没有问题的.
我始终认为,要在逆向与反汇编上有大的成就,编程是必须会的.再接着就是必须熟悉密码学.熟悉软件工程.因为越往后走,你会越发现,软件逆向并不是简单的反汇编,而是需要很多的知识.其中编译器的知识是需要的.软件逆向是会走向工程化的.很多时候一个人是在短时间内无法完成的.这个时候借鉴软件工程的方法,会有好处.目前在国内外对于软件逆向的研究并不是很成熟,软件逆向工程性的方法理论目前也没有成熟.因此在软件逆向领域是非常有挑战性的.这是一门新兴的领域,需要广大爱好者的研究和投入.
其次软件逆向是针对不同的语言,难易程度不同.对于非编译型语言,逆向的难度要小很多.目前我认为编译型语言逆向最难的是C++.对于C++的逆向,我十分推荐上面提到的4.C++反汇编与逆向分析技术揭秘这本书.
国外也有两篇极佳的论文/文章:
黑帽大会上的演讲:https://www.blackhat.com/presentations/bh-dc-07/Sabanal_Yason/Paper/bh-dc-07-Sabanal_Yason-WP.pdf
Reversing Microsoft Visual C++ Part II: Classes, Methods and RTTI. igorsk .http://www.openrce.org/articles/full_view/23
国内论坛上也有一些文章:
【原创】RTTI结构详细分析(VC++)【原创】易语言消息机制分析(消息拦截原理)【原创】MFC消息拦截分析(+示例程序分析)【原创】逆向分析 C++继承内存分布(带虚函数) 及动态绑定实现
怎样可以快速学会反汇编分析
回复 1楼 天使联盟 的帖子这些东西可以去“看雪”或者“UpK”这两个论坛看看,技术挺不错的关键在于你要用反汇编去分析什么,完全没有目的一行一行的看汇编代码,谁都得吐血的……先确定一个目的,有了目的之后再根据目的去定位程序中的关键位置,然后去分析具体部分其实反汇编分析的入门阶段并不要求汇编水平有多高,基本汇编指令能看懂就OK,并不要求有基于汇编语言的开发背景加壳的东西可以去搜索脱壳的教程,自己分析的话需要对汇编算法和数据结构都很熟悉,一般压缩壳问题不大,F8一路跑下去就OK加密壳的话就看你的算法基础了。至于高级语言,反汇编Delphi程序蛮蛋疼的,不是Delphi语言的问题,而是Borland公司的编译器的问题(Borland C++编译的程序同样蛋疼)……简直就是call的浪费者,为了实现一个很小的功能,编译器能一层一层的向下call十几层……VB的东西就已经不能用蛋疼形容了……一般VB、.NET类的程序都有专门的反编译工具,不用反汇编的,都是直接反成高级语言进行分析。反汇编分析的基础建议从C/C++语言编译出的程序开始练起,尤其是VC编译出来的,比较标准,也很通用。自己编些最基础的控制台程序(比如只有一个简单循环的小程序,或者只有一个简单条件判断语句的小程序),然后自己用OD跟一下。能了解各种语句在反汇编中的汇编代码形式看雪一类的论坛有专门的CrackMe或者TraceMe的练习破解的小程序,可以用来练习破解、跟踪、脱壳等技能跟踪Win32程序进行行为分析的话,对Windows系统API的定位是非常实用的方法,能快速跟踪出程序的大体行为。至于快一点的方法——没有。成功没有捷径,技术是靠勤奋一点点积累起来的。
想找一些游戏逆向,反汇编相关的教程,谁能推荐一下
你可以从数据分析入手,先学学反汇编的相关知识,然后选择一种语言来编写代码,如果比较懒,不喜欢英文,可以考虑从易语言入手,但是我建议你多下点功夫学下C++,毕竟易语言的资料比较少,C++网上一搜一大把,有什么不懂的也可以随时搜索。教程的话网上也有很多,你可以看看任鸟飞的相关教程,从零基础开始到成品开发,两种语言也都有讲到。
反汇编和汇编程序设计之间关系
实话告诉你吧,最为基本的爆破之类的,确实不需要什么汇编编程基础,就很容易学会,可这只是最低级的,许多学了一俩月的菜鸟都会,但是你想要更进一层,就需要有汇编编程基础了,尤其是win32汇编。
比如说追踪注册算法,下消息断点、条件断点,你跟着教程的确会做的出来,可是真正的原理在教程里作者根本不会告诉你,知其然而不知其所以然,程序设计的水平直接区分了高手与菜鸟,高手与菜鸟同时遇到一个未知问题的时候,高手往往能从一个程序设计的角度去推测问题,然后想办法去验证自己的推测,但是菜鸟遇到了就往往一脸茫然,不知该从何下手,程序设计是菜鸟进军高手的台阶,不会程序设计就只能永远的停留在菜鸟的阶段。
反汇编和程序设计就是攻和防,想要精通进攻自然需要了解对手如何防守,从而想出有针对性的方法去解决问题。所以建议你的就是想要学反汇编,第一步先随便找本汇编的书,学习里面的计算机结构,比如说CPU里面的寄存器、总线、进制换算、基本的汇编指令、计算机如何寻址等等问题。第二步才是开始拿起来王爽汇编,开始学习如何写汇编程序,重点是每章后面留的题,认真做出来,这本书做完2/3的时候基本上就差不多了。第三步是win32汇编和windows程序设计,实际上两者的内容差不多,罗云彬的win32汇编那本书就不错,因为现在反汇编的对象都是windows下的32位程序,调用的都是系统的API,这块内容才是真正的精华,实际上也不是要求你的编程功底有多么深,但必须要了解win32程序的运行机制,这才是学win32汇编的真正目的。做完这三步,基本上你就可以专心的把注意力放到反汇编上了,剩下的就是积累经验。
一口气儿做完这三步肯定很枯燥,所以你可以一边按照这样的方式去学习,一边去看一些反汇编的资料和教程,学的枯燥了去玩玩反汇编,反汇编受挫了就回来继续学习。一点一点的提高,一口吃不成胖子。
PS:欢迎来反汇编爱好者群:54437932
怎么学会读懂反汇编语言 就是od里面那种 我只会一些比如jmp je jnz 这些指令
1、到百度文库下一份intel指令速查手册
2、写一些小程序,然后用od或者ida反汇编;编译器自带的调试器也能通过(1)加断点(2)生成汇编文件查看反汇编
3、买书读(1)C++反汇编与逆向分析技术揭秘
(2)加密与解密(第三版)
如何学习汇编语言和反汇编相关问题
哈,你这观点有点问题。第一在这开始学这汇编时不要多想那反汇编的。你想嘛,正的顺的还没学好就要一起学那反的逆过程了,别的不多说,那可就要多掌握更多的软件使用了也是多麻烦吧。
最好的学汇编的方法,是花几十元钱去淘宝网购一块开发板,并让老板给你配上大量的列程,你再在网上找点视屏教学,比着这些一个一个的做,在这做的过程中,再把根据单元片机厂家的资料把芯片内的硬件资源搞明白,在这我不建议你看什么谁写的书,因他们都不可能把最新芯片的新功能写进去,这只有厂家的资料中才有的。
学汇编能做什么,起码可做很多只学C语言做不到的事,比如加,解密。比如在前期的3Q大战中要有话语权,要真知事情的真象,这只有熟知熟用汇编的人才可办到。我的观点,你就是只想做程序员那只会C都要还远远的不够,更不要谈你想怎么真正的开发,应用设计计算机了,因这就要知计算机最底层的根本你才叫真正懂计算机的。你才可把计算机玩于股掌之中。
好了,最后在这我不否认C,它具有编制方便,编程速度快,更有利于计算方面的程序开发。它应该是程序员的ABC。。。。。。
还有什么不清楚的可再追问我。
自解压的exe文件怎么破解密码
软件PasswareKitEnterprise,自己百度搜索下载一个!
这个软件可以帮你破解文件密码,网络密码。系统管理员密码以及硬盘密码等等,功能是很强大,但是操作也很繁琐。今天就化繁为简的将一下如何用它来破解加密的文档吧。
我们要破解的是加密文档,所以选择第一个选项,recovery file password
点击之后弹出选项卡,找到你要破解的文档,如Word或者zip,rar等。
我这里以我加密的一个rar压缩包为例子:
选择压缩包之后我们选择run wizard
接下来会让你选择如何破解密码,如果你对密码还有一丁点印象,就按照你的密码选择,如果是单一的,如qwerty这个,就选择第一个,后边都有例子,按照例子对照你的印象来选择。如果什么都不知道就选最后一个,这个是你对密码什么都不知道的意思。最后一种破解起来比较慢一点。
我这里设置的密码是1111,所以我选择第一个选项
破解密码需要一个过程,时间随密码的复杂程度而不同,密码月越复杂时间也越长。
过一段时间就会提示破解成功,如图所示
输入密码就可以打开加密的文档了,同样适用于Word等文件。
推荐几款C++和反汇编的书·· 简单点
反汇编,那就看点汇编的学吧,王爽汇编,图书并茂,看了就知道。
之余C++的貌似经典中的还没什么图书并茂,简单的书了。
《c++
primer》此本已足够。
在逆向方面看点,看点看雪的那个什么精华包就行了
http://www.pediy.com/essay/PEDIY_CrackMe_2007.rar
http://www.pediy.com/essay/pediy.com/pediy.com.zip
如何反汇编一个软件
你说的是什么软件?x86的还是arm的?
windows程序的话直接windows自带dumpbin,命令行里直接打“dumpbin /DISASM [反汇编的exe或dll等] 》[反汇编输出到的文件]”具体的看一下dumpbin的帮助吧
如果要高级点的,可以用IDA pro,什么x86的arm的,或者什么gba游戏,ps游戏都好反汇编的,而且x86的可以本地调试运行
更多文章:
软件架构师好考吗(请问四年内做软件架构师可能性大不大 要遵循什么步骤 怎么学习 有什么书籍推荐)
2024年7月22日 20:13
vscode配置python(mac下VScode怎么配置编译Python)
2024年8月11日 06:07
欧盟酝酿新一轮对俄制裁(欧盟又双叒对俄罗斯下手了!对俄原油限价令,会导致什么后果)
2024年6月9日 04:53
自定义工作流引擎(求推荐一款软件,能自定义工作流程,且关联上库存管理)
2024年5月2日 09:43
什么软件可以无缝切图(把4张图p在一起的无缝p图是什么软件)
2024年7月9日 10:45
为了CTF比赛,如何学习逆向和反汇编?怎样可以快速学会反汇编分析
2024年6月26日 15:33
关系数据库的三种基本运算(关系数据库管理系统的3种基本关系运算是什么)
2024年5月18日 07:11
fedora14(fedora14 可以在终端输入命令,但是鼠标点什么都没用)
2024年7月23日 12:44
源代码下载安装(hadoop的源代码怎么下载应该下载哪一个文件不知道选择那个)
2024年6月28日 16:45
countcolor(Excel countcolor函数怎么用)
2024年5月28日 09:02