个人介绍
我是程序员客栈的Senmou
毕业于社会大学,程序开发主要是自学,熟练使用火山PC 易语言,会使用C++(主要封装库类给火山PC使用),略懂 C++ NODE JS 软件逆向 网页逆向
主要方向:多线程爬虫 管理系统 后端开发
可以尝试全栈开发(如果对前端页面要求不高的话)
做事认真,态度诚恳
工作经历
2018-06-08 -2019-04-12工厂系统开发维护
该工厂的ERP系统开发,主要是个人入驻开发, 没有职位,开发调试完后就离开了..................
教育经历
2019-06-01 - 2024-05-29青鸟计算机高中
技能
前端:layui+MFC+MiniBlink浏览器 后端:hpsocket 开发工具:火山PC(基于C++的低代码平台) 项目描述: 客户要求实现进销存生产管理等一些基本ERP功能,主要功能为印刷厂的报价功能,由于时间过于长久,太多细节我没办法进行描述,我主要针对该项目所使用的技术栈进行描述, 首先,客户要求软件操作需要简单(因为培训文员的成本很大),所以该项目的流程主要为,文员使用报价程序选取材料等各种细节参数(这些参数由管理员设置)>产生报价单>提交生产 其余都是一些材料,仓库管理等等 关于开发: 该项目服务端采用HPsocket库进行开发,协议用的是TCP协议,数据库用的是mysql,运行环境为windows(如没有特殊要求,方便客户自行维护),客户对数据安全是有一定要求的,所以通讯过程中采用的是AES加密
前端:uniapp 后端:hpsocket 后端运行环境:windows server 2019 后端开发:火山PC(基于C++的低代码平台) 项目需求: 该项目为账号交易的展示页面,仅展示 开发说明: UI使用的是UNIAPP中的colorui,支持编译成小程序 APP 等等,客户端要求不高,只是展示了一些游戏账号的详情数据,和一些图片等等,该项目对比同等项目,主要是图片量大,同类产品图片展示可能会直接储存在服务器,导致服务器成本过高,所以我用的是七牛云的对象储存来储存图片,由于数据量并不大,所以mysql是直接安装到本地,对比同类产品,运营成本相对会低一些,因为后端是由C++直接编译的,所以运行服务器的配置相对于其它语言开发的服务端会小一点,适用于此类中小型项目运行
开发工具:火山PC(易语言升级版) 工具说明:火山PC是一款基于C++编译器的低代码平台,实现汉化开发,可以直接执行C++代码,并且可将C++中的大部分库封装成火山PC代码,且可以将火山代码转换为C++原代码 项目简介: 该项目是针对某一网站进行脱机登录与多线程数据爬取数据处理等一系列脱机操作,并且客户要求对该软件进行加密授权。 项目包含的库类: openssl curl 谷歌V8 JS引擎 sqlite3数据库 MFC yyJson HPsocket(后端) 项目主要难点: 1:目标网站在登录时,采用了RSA对登录密码进行加密 2: 目标网站对多线程爬取进行了反爬虫处理 项目开发: 该软件授权采用服务器授权,用的是HPsocket作为服务端监听组件,运行环境为Windows Server 2019 , 由于客户对授权没有过多的要求,所以服务端功能并不多,验证流程为>客户端运行获取本机机械码>使用GET请求将机械码发送至服务端>服务端收到GET请求验证该机械码是否有权限访问并且返回至客户端>客户端采用的是MFC组件动态创建,如果返回验证失败,则创建机械码窗口,如果成功就创建客户端主界面,至此验证流程完成 此验证流程中,客户端与服务端通讯,数据采用AES加密,以作为第一道防破解措施,并且验证成功后,将会携带一些软件中的基本设置,如果客户端被破解,没有这些基本设置,客户端软件将无法有效运行,则丧失了破解的意义,此为第二道防线,其三,如果前两道防线都守不住,在验证成功后,将会启用一条线程,该线程会半小时验证一次授权,如果发现前道防线失效,将会自动破坏软件的运行机制,比如修改软件中的一些全局参数,最后软件在编译后,在采用MVP进行加固(只是懂简单的破解原理,所以在软件防护这块,是根据这些经验做的,由于工作任务主要在客户端上运行,目前无法做到100%安全), 目标网站在登录时,会进行RSA加密处理,我在网站的JS代码中下断点,并且将该网站的JS加密部分扒下来,封装了一个JS加密函数,调用谷歌V8 JS引擎,在软件中进行加密(该网站的加密难度并不高,但需要点经验) 获取数据部分,该网站每秒请求超过2次就会提示频繁,频繁提示多了就会封号,并且研究表明,该网站每个IP只能在短期内获取30页数据,由于客户要求,同时多个账号同时获取,为了最大限度的提高获取速度,我采用的是一个账号一条线程,并且进入线程后,在将请求以每秒2次的速度提交到请求线程中,由于更换IP后需要更新其Cookies,所以每个账号每个Ip请求了三十页之后,将会停止该账号的请求线程,并且更新IP后,在进行线程投递,至此,整个任务流程完成