逆向-获取一个网站中一个功能的源代码

前言

只是一个分享经验贴,自己也是小白,对于逆向了解不多。只不过有需求,那么就要找出思路完成,分享一下我的思路。

范例

以在线JSON校验格式网站的压缩JSON功能逆向需求源代码 网址:在线JSON校验格式网站
在这里插入图片描述

  • 1、首先,devtool工具在Elements中找到按钮的源代码,如下图,我们可以看到其有两个属性对我们有用,iddata-html,type和class就不多说了。
    在这里插入图片描述
  • 2、紧接着我们ctrl+F,打开搜索框,将id复制进去,寻找页面中是否有与id关联的代码。在本案例中并无,因此,我们进入devtool的source栏,也就是网站的源代码。
    在Elements中我们可以观察js文件的路径,并在source中找到。
    Elements中的路径
    在这里插入图片描述
  • 3、分析各个js文件并依次查看,不嫌麻烦的可以ctrl+F在每个js文件中通过上述的id查找哪个JS有相关联,最后我们锁定在了global.min.js上,通过分析大体上也可以确认。在global.min.js我找到的关联代码:(这里我将代码复制进了vscode,这样看的更清楚)
    在这里插入图片描述
    通过这段代码,我们锁定了其点击后使用的函数,function yasuo(),在vscode中ctrl+H,找到function yasuo()函数,如下:
    在这里插入图片描述
    这便是压缩的源代码函数,对于函数中的editor.getValue,我们也可以通过此方法了解其作用,不过看到代码也清楚它应该就是我们input进去的json,在Elements中我也找到editor的出处:
    在这里插入图片描述
    这里用了一个插件。至此我们寻找压缩功能的源代码就结束了,通过分析源代码函数,便可得知其具体的原理和逻辑。

结语

纯小白,只是觉得找源代码这个方法快一些,上述有不得当或者错误的地方,望请指出。若大佬有更好的方法,望请赐教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。 通俗解释: 对于软件项目的逆向工程就如同盖楼一样,一栋大楼摆在面前,在不知道大楼图纸(图纸其实就是程序的架构)的前提下,仿照现有的大楼结构(发布好的项目结构)盖出相同的大楼。 1、在eclipse建立maven项目(单击链接查看教程) 2、打开建立的该项目所在文件夹:项目右击->Properties 3、找到该文件夹所在位置,并找到src目录 4、还原webapp文件夹(前台页面内容)的内容:将放在服务器tomcat的webapps文件夹下的.war文件拷贝出来解压将解压的内容放到原webapp文件夹 5、还原resources文件夹(配置文件信息)的内容:依然在解压的.war文件找:WEB-INF->classes的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹(项目的类包)内容:将5的com文件夹的内容直接打开任意一个最下面的子文件,将其拖到我们之前下载好的反编译软件 7、通过eclipse重新加载该项目,将反编译出来的每一个类按照相应的结构、命名在原项目建立 8、引入相关的jar包:jar包文件在解压的.war文件:WEB-INF->lib文件夹下;项目右击->build path->Configure build path->Libraries->Add External JARs.. 选择jar包所在的文件也就是上面的lib文件夹位置 9、更新项目,并在eclipse添加tomcat(点击链接查看教程) 10、解决项目的问题,小编遇到的最多的问题是因为继承关系用到了泛型,所以在反编译的时候丢失了List或者set返回值类型,找到错误上面定义的地方,将对应的类型添加到上面就ok了! 11、appserver端代码搭建的时候,用到了hadoop技术,可能编译的时候会出现本地没有hadoop的错误(单击链接查看解决方法) 注:反编译完成之后,在测试功能的时候,发现导出excel的逻辑有所错误,这方面还没有搞懂是当时人为问题还是反编译过程的问题,不过最后跟了代码也解决了! 【总结】 以上是小编在研究完成之后属于教程性的东西,将其小编实践以及思考的部分过程省略了。 活儿干完之后,得到经理和领导的大大赞扬是少不了的,另外吃肉也是少不了的。 但是更多的是,小编在解决这个大问题的时候的思考过程,其困难部分: 1、研究生成war包之后,对应的文件的结构 2、研究java类的打包形式,对应的jar包的存放位置 3、对于该项目框架的梳理过程 4、整合过程,对于每一步操作细心的要求 5、整合完成,解决编译报错的过程 虽然活儿干完了,项目也跑了起来,但是对于里面的技术点自己还是得深入到代码去研究,去感受,还有其业务逻辑的梳理,以及设计思想的升华都需要去了解去学习。 只要相信自己,并付出与行动,终究会取得胜利的桂冠,加油O(∩_∩)O~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

News777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值