1.go map and slice 2021-10-08
2.逆向pyinstaller打包的导航导航exe软件,获取python源码(1)
3.Gitea源码分析(一)
4.2021年最佳Selenium替代品
5.VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲!源码源码
go map and slice 2021-10-08
golangæ¯å¼ä¼ éï¼ä»ä¹æ åµä¸é½æ¯å¼ä¼ éé£ä¹ï¼å¦æç»æä¸ä¸å«æéï¼åç´æ¥èµå¼å°±æ¯æ·±åº¦æ·è´ï¼
å¦æç»æä¸å«ææéï¼å æ¬èªå®ä¹æéï¼ä»¥åsliceï¼mapç使ç¨äºæéçå 置类åï¼ï¼åæ°æ®æºåæ·è´ä¹é´å¯¹åºæéä¼å ±åæååä¸åå åï¼è¿æ¶æ·±åº¦æ·è´éè¦ç¹å«å¤çãå 为å¼ä¼ éåªæ¯ææéæ·è´äº
mapæºç :
/golang/go/blob/a7acf9afbdcfabfdf4/src/runtime/map.go
mapæéè¦ç两个ç»æä½ï¼hmap å bmap
å ¶ä¸ hmap å å½äºåå¸è¡¨ä¸æ°ç»çè§è²ï¼ bmapå å½äºé¾è¡¨çè§è²ã
å ¶ä¸ï¼å个bucketæ¯ä¸ä¸ªå«bmapçç»æä½.
Each bucket contains up to 8 key/elem pairs.
And the low-order bits of the hash are used to select a bucket. Each bucket contains a few high-order bits of each hash to distinguish the entries within a single bucket.
hashå¼çä½ä½ç¨æ¥å®ä½bucketï¼é«ä½ç¨æ¥å®ä½bucketå é¨çkey
æ ¹æ®ä¸é¢bmapç注éå /golang/go/blob/go1..8/src/cmd/compile/internal/gc/reflect.go ï¼
æ们å¯ä»¥æ¨åºbmapçç»æå®é æ¯
注æï¼å¨åå¸æ¡¶ä¸ï¼é®å¼ä¹é´å¹¶ä¸æ¯ç¸é»æåçï¼èæ¯é®æ¾å¨ä¸èµ·ï¼å¼æ¾å¨ä¸èµ·ï¼æ¥åå°å 为é®å¼ç±»åä¸åè产ççä¸å¿ è¦çå å对é½
ä¾å¦map[int]int8ï¼å¦æ key/elem/key/elemè¿æ ·åæ¾ï¼é£ä¹int8ç±»åçå¼å°±è¦padding 7个åèå ±bits
æ´å¤å¯åè
/p/
/articles/
å æ¤ï¼sliceãmapä½ä¸ºåæ°ä¼ éç»å½æ°å½¢åï¼å¨å½æ°å é¨çæ¹å¨ä¼å½±åå°åsliceãmap
逆向pyinstaller打包的系统exe软件,获取python源码(1)
年创作了一款安全事件分析小工具,导航导航这是源码源码我初次尝试为安全驻场人员开发的简易工具。利用pyinstaller打包为PE格式,系统源码200多m使用起来十分便捷,导航导航只需导入态势感知的源码源码安全事件列表,小工具便会自动进行分析。系统这款工具旨在辅助驻场人员理解安全事件,导航导航同时收集现场信息,源码源码便于后续运营效果评估。系统 近期,导航导航在探索逆向工程的源码源码过程中,我了解到可以逆向pyinstaller打包的系统exe软件,从而获取python源码。这促使我回忆起之前在GitHub上分享的项目。现在,就让我讲述这个过程:逆向工程之旅。 小工具操作步骤如下:首先,对exe程序进行反编译处理。
接着,进入反编译后得到的extracted文件夹。
仔细观察struct.pyc和main.pyc文件头的前字节,它们之间可能存在关键线索。
然后,对pyc文件进行反编译,myreport源码逐步揭示python源代码。
最后,虽然目前只能看到主函数,但这是逆向工程的一个重要突破。
尽管未能完全揭示所有函数,但这无疑为后续深入研究打开了新的可能。Gitea源码分析(一)
Gitea是一个基于Go编写的Git代码托管工具,源自于gogs项目,具有良好的后端框架和前端集成。
前端框架采用Fomantic UI和Vue,路由控制器框架在年4月从macaron切换到chi,形成了gitea项目的结构基础。
在调用接口时,gitea引入了'User','Repo','Org'等内容,简化了接口调用,便于管理。'ctx.User'和'ctx.Repo'内容动态变化,需要用户登录和进入仓库时赋值。
在'routers'下,'handler'相关文件分为'get'和'post'两类,前者涉及前端渲染,后者负责执行操作。
'get'请求通过'templates'中的文件渲染到前端,通过'ctx.Data["name"]'传递需要渲染的reddit 源码数据,获取URL参数使用'c.Query'。
'post'请求接收前端数据,通常通过'form'传值,从'context'生成,可以使用'form.xxx'直接调用,添加内容则需在'form'结构体中定义。
渲染生成网页使用'ctx.Html(,tplName)',根据'context'内容做条件判断。
权限管理功能实现中,数字越大权限越高,便于后续对比。'UnitType'包含多项,如仓库页面导航栏显示。检查权限时,对比AccessModeRead和模块权限,大于则认为具有读权限。
gitea默认运行于单一服务器,伸缩性有限。若需分布式改造,需解决大规模并发访问、存储库分片和数据库支撑等问题。通过ELB负载均衡分散到多个节点,数据库使用集群方案,但存储库分片面临巨大挑战,现有技术难以实现。
官方文档提供了其他开源库的ptypes 源码介绍,包括配置文件、容器方式下的轻量仓库与CI使用方案等。深入研究可发现Gitea的配置、路由控制框架chi、权限管理实现及分布式架构改造思路。
年最佳Selenium替代品
Katalon Studio,受到多万用户的信赖,简化了Selenium和Appium的复杂性,同时提供了高级功能,为自动化解决方案提供了两全其美。这款工具能无缝集成BDD、CI/CD、源代码控制、测试管理与缺陷跟踪等,形成完整的测试自动化工具链。
Ranorex Studio,全球有超过,名用户,专为加速跨平台测试自动化而设计。无论是对初学者友好的无代码即点即用界面,还是对于自动化专家的强大IDE,Ranorex都能满足不同的需求。它与BDD、CI/CD、源代码控制、测试管理、缺陷跟踪等解决方案集成,airodump 源码形成完整的测试自动化工具链。
TestProject,一个被万用户信赖的免费测试自动化平台,让Selenium测试变得轻松。它消除了复杂的设置或维护问题,提供了一个简单易用的环境,让测试人员可以更高效地进行自动化测试。
Rapise,一个强大的无脚本测试自动化平台,适用于Web、移动和桌面应用程序以及API的测试。它结合了强大的功能和易用性,为测试人员提供了全面的测试自动化解决方案。
Cypress,一款适用于Web环境的开源测试自动化解决方案,与当前的开发实践紧密结合。它提供了强大的功能,使测试人员能够更轻松地进行自动化测试,提高测试效率和质量。
iMacros,一个用于Web测试的录制和回放工具,提供了简单直观的方法来自动化任务,简化了测试过程。
Subject7,一个自动化平台,通过一系列命令提供端到端的测试自动化功能,隐藏了行业标准包的复杂性,使测试人员能够更专注于测试本身。
Cucumber,一个开源的BDD测试工具,提供了行为驱动开发的框架,帮助测试人员以更清晰、更易于理解的方式编写测试。
UFT(统一功能测试),作为最健壮的商业测试自动化工具,UFT是功能测试和回归测试的优秀选择之一。它提供了强大的功能和全面的支持,满足了多种测试需求。
Serenity BDD,一个自动化验收和回归测试的Selenium替代方案,提供了生成测试报告的功能,帮助测试人员更好地了解测试复盖率。
IBM Rational Functional Tester,一个自动化的功能和回归测试工具,提供了广泛的应用程序支持,包括Java、Siebel、SAP、Net、PowerBuilder、AJAX等,适用于多种测试环境。
Galen框架,最初用于测试Web应用程序的布局,能够与Selenium集成,进行Web应用程序的可视化和布局测试。它提供了强大的功能,帮助测试人员更高效地完成测试任务。
SikuliX,一个在Windows、Mac或Linux/Unix操作系统上自动处理屏幕显示内容的工具,基于搜索图像并使用鼠标和键盘操作GUI元素的工作流,为自动化测试提供了灵活且强大的解决方案。
Redwood HQ,一个开源的测试自动化框架,安装在服务器上,可在任何HTML5兼容的浏览器上运行,无需额外安装,为测试人员提供了高效、灵活的测试环境。
Watir,一个用于自动化测试的开源Ruby库,是支持功能和回归web测试的Selenium竞争者之一,提供了丰富的功能和广泛的测试支持。
Telerik Test Studio,Progress开发的软件自动化工具,支持AJAX、HTML5、JavaScript等,为自动化应用程序提供本地跨浏览器支持。它结合了记录和回放功能,为测试人员提供了全面的测试自动化解决方案。
Screenster,一个基于云的UI测试平台,用于可视化回归测试,捕获每个步骤的屏幕截图并将其存储为基线,为测试人员提供了直观的测试反馈。
在选择Selenium替代品时,应该考虑的因素包括工具的特性和功能、与现有开发流程的集成、用户支持和社区活跃度、成本和许可要求等。选择合适的Selenium替代测试自动化工具对于提高测试效率、确保软件质量以及满足项目需求至关重要。
VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲!
自动驾驶领域在年呈现出快速发展的态势,各大创业公司纷纷宣布获得大额融资。1月日,文远知行完成B轮3.1亿美元融资;1月日,滴滴获得3亿美元融资;2月8日,小马智行获得1亿美元C+轮融资;3月日,Momenta完成C轮总计5亿美元的融资;4月日,大疆创新推出智能驾驶业务品牌“大疆车载”,向汽车企业提供自动驾驶解决方案;4月日,小鹏汽车发布搭载激光雷达的智能汽车小鹏P5,成为全球第一款量产的激光雷达智能汽车;4月日,图森未来在美股上市,被称为“全球自动驾驶第一股”;4月日,华为和北汽合作实现上海城区通勤无干预自动驾驶,成为全球唯一城市通勤自动驾驶量产车。
在自动驾驶、无人机、增强现实、机器人导航等技术领域中,定位和建图(SLAM)发挥着至关重要的作用,而视觉惯性里程计(VIO)作为SLAM算法中的一个重要分支,其理论复杂度较高。对VIO的掌握能力将直接影响到SLAM从业者的专业水平。VINS-Mono是由香港科技大学飞行机器人实验室(沈邵劼团队)在年开源的知名单目VIO算法。该算法由第一作者秦通(华为天才少年)提出,并在年获得IEEE Transactions on Robotics期刊的最佳论文奖。VINS-Mono使用单目相机和惯性测量单元(IMU)实现了视觉和惯性联合状态估计,同时能够估计传感器外参、IMU零偏以及传感器时延,是一款经典且优秀的VIO框架。
VINS-Mono在室内、室外大尺度以及高速飞行的无人机场景中均表现出色。在手机AR应用中,该算法优于当前最先进的Google Tango效果。同时,VINS-Mono也是VINS-Fusion算法的基础,应用于汽车SLAM时同样展现出高精度和稳定性。
在自动驾驶、无人机、增强现实、机器人导航等领域的岗位中,掌握VINS-Mono算法成为了关键技能之一。为此,计算机视觉life团队推出了独家课程《VINS-Mono:原理深剖+白板从零手推公式+源码逐行精讲》。该课程通过详细的步骤解读、疑难问题解析、结合作者回复的issue理解,帮助学员深入掌握VINS-Mono背后的原理。课程内容覆盖从基础理论到复杂公式的推导,通过白板从零开始手推公式的方式,使学员能够理解复杂公式的形成过程,从而真正掌握VINS-Mono的原理。课程价格根据购买时间调整,购买越晚价格越高。如有疑问,学员可加入QQ群()咨询,购买成功后会自动显示内部答疑群。