如何看一款软件的源代码?怎么看懂?
如今是互联网时代,互联网中不管是什么样的软件都能获取都源代码,电脑中我们打开网页后,就可以获取到网页源代码,软件的话又该如何获取到源代码呢?
一、安卓APP
用android-killer可以反编译apk,比较方便,不过只能看到smail文件,学习一点smail,你可以看明白它的源代码的意思,如果有壳的话,先改apk后缀后为zip,找到加壳的so文件,一般如名字中带xxxprotect.so。
用百度,360,腾讯厂商加固的话,也都有对应特点,然后把这个so文件用IDA pro打开,找到它的关键加密算法。找到后,一版是不让进加密算法,直接return。就可去壳,去了壳之后,再进行重打包签名,测试下。
二、ios上的app一般走如下流程
1、拿个越狱机-下好工具。
2、去越狱平台下个想分析的应用(或者去app store下,用解密工具解密一下)。
3、导入reveal分析页面,得到想要的知道的具体视图类或者大致范围。
4、分析class-dump中,找到想要的类和函数。
5、在IDA或者Hopper中找到具体函数,查看汇编逻辑。
6、修改相应的逻辑,达到篡改目的,重新打包。
源代码拿到了,但是如果你不是学习计算机的,肯定是无法看懂源代码的。
1、先按照教程先把系统搭建起来,本地web打开这个开源的网站。
2、然后随便点点整个软件,把系统流程走走,注册登录,发问题,写文章,回答,回复,怎么管理帖子,账户中心,等等都操作一遍,先把整个系统有哪些功能可以熟悉一下。
3、接着打开chrome调试工具,从一个开源网站的最基本的账户系统开始,先了解请求从chrome前端发出到后端框架响应输出怎么走的,入口在哪,这套模式适合所有模块。
4、跟踪请求到代码那个controller,哪个action,输出view模版在哪,都弄清楚来,把套路熟悉
5、这下你就可以在代码里面加一些var_dump()之类的语句,了解请求参数,业务逻辑怎么处理,输出了什么,操作了哪些模型表,view是怎么输出的,其实这些都主要是业务逻辑,你还得多看才明白。
6。照着上面的套路把剩下的模块也都看看。注意看的过程中为了防止断断续续导致忘记,遗漏什么的,可以自己搞一个思维导图,一部分一部分针对性去了解,实在不懂的可以去百度,毕竟开源的东西别人也有经验之谈或源码解析,可以辅助你了解源码。
如果你是初学者,在看软件的源代码的时候,最好先弄懂计算机的其他代码知识,可以到教育平台上的网课学习。这样在看软件源代码的时候才会看懂。最重要的,软件的源代码如果不是公开的,我们在找到之后只可以用来学习,千万不要用于它途。
推荐阅读: