天天看点

黑猫与白猫前言:背景一:背景二:思考总结:

“不管黑猫白猫,捉到老鼠就是好猫”

前言:

开个随笔栏吧!笔者平时偶尔分享些简单技术方面的知识,思考性的总结或想法往往要么存在脑海中,要么一闪而过。不落地的主要原因还是觉得自我学时思想太过疏浅,怕说的不够好。经常会听到部分人对编程语言或技术实现方法的负面评价,例如易语言还有类似于前两篇笔者利用模拟键盘操作完成小功能实现的解决方法。一个单词总结形容就是“low”。所以借此结合前两篇文章简要聊一聊。

背景一:

python简单小脚本:模拟键盘爬取VirusTotal样本信息,这篇文章的事情背景发生在笔者所在小组需要快速出篇incaseformat蠕虫病毒的报告,虽然最后还是通宵了。。。。。当时的需求是要快速理出6000个样本第一次出现的时间线。编译时间?创建时间?入库时间?这些时间点作为该样本的首次出现时间都不太准确,唯一靠谱点的就只有VirusTotal的First Submission。由于我们没有购买企业账号,能想到的方法只有自己去爬取了。当查看VT接口文档发现First Submission信息需要企业账号获取后,只好采用普通爬虫,Selenium等常规爬虫操作,无奈笔者的反爬技术有限,试了许久也没有个结果时。只能无奈模拟键盘对网页进行复制粘贴。由于样本有点多,当时又额外的叫了几个同事一起运行脚本,妥妥的“人肉分布式爬虫”。好在最终完成了任务,没有影响到我们最终报告的数据展示。

背景二:

x64dbgpy安装及动态函数名称获取,这篇文章的事情背景发生在笔者分析LokiBot加载核心层代码时,发现其调用函数逻辑和许多大家族如Emotet核心层相似,都是动态获取API函数地址进行后续调用,以往的方法都是需要看哪个API就去动态跑过去看一下,造成了很多时间和资源的浪费。如果能运行一遍样本自动导出api调用日志再结合ida一定很省事,这是笔者当时心里的直观需求,于是采用了x64dbgpy这款插件,正如之前文章中表述的一样,获取api函数名称遇到了个坎,而且尝试了很久没有找到一个好的方法。后来发现右击寄存器可以通过热键获取函数名称,这样的话,x64dbgpy配合键盘模拟,导出api调用日志也就轻而易举了。好在最终导出了自己满意的数据。

思考总结:

技术没有高低贵贱之分

曾经看过一个贴子,有个网友诚心的表述了对易语言的喜爱。他的孩子上小学,老师放学后经常叫家长出些简单的数学运算题给孩子锻炼。一开始这位家长还能手写一些给孩子算,但是长久过来也是顶不住。他网上搜索相关问题时发现了易语言,如获至宝。学了不久就可以做出一个数学运算小程序供孩子课后练习。笔者相信,在这位网友编译完成运行跑通的那一刻,易语言对他来说就是最好的语言。如果按照我们平时学习的流程走一遍,黑框框,hello world,画界面等等,会英文还好,如果不会英文,看到满屏的英文字符与亲切的中文作对比,哪个对他来说更有吸引力呢?

所以每项技术的出现都有其独特的地位和价值,我们不能单纯的以自己目前所在工作环境,知识的储备,时间节点来对其进行批判和贬低。

一分实现,九分思考

分享一个身边遇到过的真实案例,一个软件厂商驱动撞了我们的防护规则,希望我们给排除一下。当时这个问题转过来的时候,看了一下,然后排除了。结果,这个厂商的驱动不断更换名称,导致后续他改一次名称,就找我们排除一次。初期还好好的一起说话,后续我们决定不对此进行排除时,瞬间翻脸,威胁说要与我们对抗。当然这是不可能发生的事情,因为没人会这么蠢,无异于病毒自杀式行为。加一条排除规则可能只花费不到一分钟的时间,但是我们并没有花费九分钟的时间去思考,为什么给他排?给他排会带来后续什么样的后果?他这敏感操作后续会不会真的存在安全风险?会不会打开了类似于潘多拉魔盒?这些都是当时没有考虑到的点,导致了后续发生的不愉快事情。

包括此次笔者两篇文章面对的情况,技术问题类比下来可能只占一分,实在不行我去好好学学反爬,魔改x64dbg,x64dbgpy,总归有实现的办法。但是在做之前,得想清楚自己这样做的目的是什么?最终导致的结果是什么?成为反爬虫工程师?开源软件改进者?这都不是我想要的答案,我当时的情景只想要快速帮助我解决眼下的问题,后续若对此真感兴趣可以静下心来慢慢学。若没有理性思考,一头钻进技术的死胡同,结果可想而知。

因材施教,因地制宜

快速高效的解决问题并不是意味着我们需要放弃对更高更好技术的追求和探索!而是结合实际情况,理性思考后作出选择与取舍。不经过自己的尝试努力,一上来就放弃或直接采取笨方法,都是不可取的。作出合理的判断并最终解决问题,后续也能及时弥补自身所欠缺技术点的不足,下次遇到同样的问题能够更优雅高效的解决,这才是一个不断前进发展的良性循环!!!!!

继续阅读