特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。
本文作者在文章的前部分用了大量笔墨详细描述了自己尝试 Rust 受挫的经历,后半部分分析了 Rust 的问题及发展。自发布以来,这篇文章在 r/rust 上得到了 500 多个赞,在 HN 上有 700 多条评论。我们将其翻译出来,以飨读者,也希望大家可以理性讨论。
子图同构问题本质上就是一种匹配,VF2算法加了很多feasibility rules,保证了算法的高效性。这里只是实现最基本的判断子图同构的算法:
作为移动开发者,最头疼的莫过于遇到产品上线以后出现了bug,但是本地开发环境又无法复现的情况。常见的调查线上棘手问题方式大概如下: 以上两种方法在之前调查线上问题时都有使用,但因为二者都有明显的缺点,
3. SConstruct 文件 是一个类似于makefile一样的东西, 告诉 scons做什么,而不是严格的规定soncs做这件事的步骤
所谓的应用层钩子(Application-level hooks)是一种编程技术,它允许应用程序通过在特定事件发生时执行特定代码来自定义或扩展其行为。这些事件可以是用户交互,系统事件,或者其他应用程序内部的事件。应用层钩子是在应用程序中添加自定义代码的一种灵活的方式。它们可以用于许多不同的用途,如安全审计、性能监视、访问控制和行为修改等。应用层钩子通常在应用程序的运行时被调用,可以执行一些预定义的操作或触发一些自定义代码。
LyScript 插件集成的内置API函数可灵活的实现绕过各类反调试保护机制,前段时间发布的那一篇文章并没有详细讲解各类反调试机制的绕过措施,本次将补充这方面的知识点,运用LyScript实现绕过大多数通用调试机制,实现隐藏调试器的目的。
LyScript插件中内置的方法可实现各类反调试以及屏蔽特定API函数的功能,这类功能在应对病毒等恶意程序时非常有效,例如当程序调用特定API函数时我们可以将其拦截,从而实现保护系统在调试时不被破坏的目的。
0x00 前言 百度百科中对IMSI的介绍如下: 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,由两位或者三位数字组成,中国移动的移动网络编码(MNC)为00;用于识别移动用户所归属的移动通信网;MSIN是移动用
ROP绕过片段简单科普一下,你可以理解成一个可以关闭系统自身内存保护的一段机器指令,这段代码需要我们自己构造,这就涉及到在对端内存搜寻这样的指令,LyScript插件增强了指令片段的查找功能,但需要我们在LyScript插件基础上封装一些方法,实现起来也不难。
LyScript 插件可实现对压缩壳的快速脱壳操作,目前支持两种脱壳方式,一种是运用API接口自己编写脱壳过程,另一种是直接加载现有的脱壳脚本运行脱壳。
1、FatFS作者ChaN老师新作 一如既往的漆包线风,手艺依旧很棒,这次设计的电源板,做成了双面板,并且做了铺铜设计,先铺绝缘层再铺铜皮。正面的器件需要接地就戳破绝缘层焊接到铜皮。 正反面设计:
LyScript 插件实现对特定汇编指令片段的批量搜索功能,用户传入一个汇编指令列表,然后循环搜索该列表内的所有指令特征,如果找到了,则返回该指令的内存地址。
LyScript 插件默认并没有提供上一条与下一条汇编指令的获取功能,当然你可以使用LyScriptTools工具包直接调用内置命令得到,不过这种方式显然在效率上并不理想,我们需要在LyScript插件API基础上自己封装实现这个功能。
LyScript 插件中默认提供了多种内存特征扫描函数,每一种扫描函数用法各不相同,在使用扫描函数时应首先搞清楚不同函数之间的差异,本章内容将分别详细介绍每一种内存扫描函数是如何灵活运用,并实现一种内存查壳脚本,可快速定位目标程序加了什么壳以及寻找被加壳程序的入口点。
前言:最近遇到一个需求,就是在车载系统上写一个APP,需要控制手机上的通话。之前没有接触过蓝牙,所以稍微了解了一下。 首先手机连接汽车,手机就属于服务端,车载系统属于客户端。在Android源码中,实现了客户端对服务端蓝牙通话的挂断和接听。代码在:/frameworks/base/core/java/android/bluetooth/BluetoothHeadsetClient.java 这里有对应的函数来挂断和接听电话。
Kd_camera_hw.c (custom\viroyal73\kernel\camera\camera)
各位好,从今天开始,将带来几期关于 Android 源码解析的文章,感谢你的阅读,也欢迎一起讨论。
在Windows平台下,应用程序为了保护自己不被调试器调试会通过各种方法限制进程调试自身,通常此类反调试技术会限制我们对其进行软件逆向与漏洞分析,下面是一些常见的反调试保护方法:
钩子劫持技术是计算机编程中的一种技术,它们可以让开发者拦截系统函数或应用程序函数的调用,并在函数调用前或调用后执行自定义代码,钩子劫持技术通常用于病毒和恶意软件,也可以让开发者扩展或修改系统函数的功能,从而提高软件的性能和增加新功能。
x64dbg 调试器的源码编译很麻烦,网络上的编译方法均为老版本,对于新版本来说编译过程中会出现各种错误,编译的坑可以说是一个接着一个,本人通过研究总结出了一套编译拳法可以完美编译输出,不过话说回来x64dbg这种使用两个编译器开发的方式以及调用太多的第三方项目想要完全编译其实也是非常困难的,如下笔记只提供编译x64dbg本体,并确保其能够正常运行。
LyScript 针对内存读写函数的封装功能并不多,只提供了内存读取和内存写入函数的封装,本篇文章将继续对API进行封装,实现一些在软件逆向分析中非常实用的功能,例如内存交换,内存区域对比,磁盘与内存镜像比较,特征码检索等功能。
LyScript 中提供了多种内存特征扫描函数,每一种扫描函数用法各不相同,在使用扫描函数时应首先搞清楚他们之间的差异,如下将分别详细介绍每一种内存扫描函数是如何灵活运用的,最后将实现一个简易版内存查壳脚本,可快速定位目标程序加了什么壳。
LyScript 插件默认提供了一个get_disasm_code()方法可以直接获取到指定行数的反汇编代码,但如果需要自定义获取或者是需要自己封装一个反汇编方法,则你可以用如下两种方式来得到。
LyScript 可实现自定义汇编指令的替换功能,用户可以自行编写一段汇编指令,将程序中特定的通用函数进行功能改写与转向操作,此功能原理是简单的Hook操作。
最近有客户反馈Android接收不到短信,于是一头扎进RIL里面找原因。最后发现不是RIL的问题,而是BC72上报 短信的格式不对,AT+CNMA=1无作用等几个小问题导致的。尽管问题不在RIL,但总算把RIL短信接收流程搞清楚了。
腾讯优图实验室提出一种新的视频动作检测算法DBG已经开源,该算法在全球两大权威视频动作数据集ActivityNet-1.3和THUMOS14上均取得了第一。 任务介绍 视频动作检测技术是精彩视频集锦、视频字幕生成、动作识别等任务的基础,随着互联网的飞速发展,在产业界中得到越来越广泛地应用。视频动作检测算法需要在给出视频中找到动作发生的位置(起点和终点)和置信度。如下图所示,我们需要在一段体育视频场景中,找到“跳高”这个动作发生的起点时刻和终点时刻。 算法设计 与现有的视频动作检测算法相比,DBG算法有
在第一章中我们介绍了x64dbg这款强大的调试软件,通过该软件逆向工程师们可以手动完成对特定进程的漏洞挖掘及脱壳等操作,虽然x64dbg支持内置Script脚本执行模块,但脚本引擎通常来说是不够强大的,LyScript 插件的出现填补了这方面的不足,该插件的开发灵感来源于Immunity调试器中的ImmLib库,因Immunity调试器继承自Ollydbg导致该调试器无法支持64位应用的调试,同时该调试器也长期没有开发者进行维护,正是在这种情形之下LyScript诞生。
LyScript 插件提供的反汇编系列函数虽然能够实现基本的反汇编功能,但在实际使用中,可能会遇到一些更为复杂的需求,此时就需要根据自身需要进行二次开发,以实现更加高级的功能。本章将继续深入探索反汇编功能,并将介绍如何实现反汇编代码的检索、获取上下一条代码等功能。这些功能对于分析和调试代码都非常有用,因此是书中重要的内容之一。在本章的学习过程中,读者不仅可以掌握反汇编的基础知识和技巧,还能够了解如何进行插件的开发和调试,这对于提高读者的技能和能力也非常有帮助。
为了解释前言中的两个问题,我们需要在 CopyMock 新增了一个属性 str,该属性的类型是 std::string。
在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)。 .gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。
LyScriptTools模块实在LyScript模块反汇编基础上封装而成,其提供了更多的反汇编方法,可以更好的控制x64dbg完成自动化反汇编任务,API参考手册如下。
LyScript插件中提供了三种基本的堆栈操作方法,其中push_stack用于入栈,pop_stack用于出栈,而最有用的是peek_stack函数,该函数可用于检查指定堆栈位置处的内存参数,利用这个特性就可以实现,对堆栈地址的检测,或对堆栈的扫描等。
领取专属 10元无门槛券
手把手带您无忧上云