首页
学习
活动
专区
圈层
工具
发布

PC微信逆向:实现自动保存加密的聊天图片

本文作者:鬼手56(信安之路病毒分析小组成员 & 信安之路 2019 年度优秀作者) 成员招募:信安之路病毒分析小组寻找志同道合的朋友 本文基于 anhkgg 大佬的文章《微信 PC 端技术研究(2)-...拿下语音》,原文链接: https://bbs.pediy.com/thread-249274.htm anhkgg 大佬的这篇文章找到了保存语音消息的接口,这里直接给出相关特征码,方便定位(我使用的微信版本依旧是...那么我们不妨猜测一下图片相关的处理流程。 首先接收到原始的消息后,会对消息进行一系列的处理,其中就包括判断消息是否是图片。那么如果是图片则会取出图片数据,然后在内存中对图片进行加密。...] = { 0 }; GetTempPathA(MAX_PATH, temppath); char imagedir[20] = { "WeChatRecordImages" };...项目地址 最后附上我的微信机器人项目地址(点击阅读原文直达): https://github.com/TonyChen56/WeChatRobot

2.4K10

ASM存储高怎么办?这里有一套可用故障解决分析方案

2、目前看问题都是在检测到IO错误100s后发生,能否控制ASM在收到OS 磁盘无法访问后,快速将asm disk offline,而不是反复报IO错误? ...简单来说,esd_secs是磁盘块设备的IO超时时间,path_fail_secs是LUN的IO超时时间,超过上述时间后多路径软件会把对应的设备或者路径置为offline。...由于ASM DG使用的LUN裸设备,所以我修改了path_fail_secs参数,从120s减少为30s,修改后的确发现数据库检查到IO错误的的确从60s左右缩短到了30s左右。...多路径进入静默等待期,IO锁定无反应,导致ASM实例反复Retry直到静默超时(120s) 2、 问题都是在检测到IO错误100s后发生,能否控制ASM实例在收到OS 磁盘无法访问后,快速将asm disk...offline,而不是反复报IO错误?

82720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    不用组件的url重写(适用于较大型项目)

    网上很多关于url重写的教程都推荐下载某某某组件, 我个人不喜欢这样,即使是M$的组件也一样,因为我们干程序员的,越贴近真相越好 那么我也写一个关于url重写的文章,希望对和我一样有个性的coder...aspx"       page="/default.aspx"       querystring="id=$1^page=$3" />  我这里只写了一种规则 然后修改网站的web.config...IIS7 然后在解决方案下新建一个项目(类库),起什么名字无所谓,主要是这个项目下一定要有一个命名空间为my.Forum的类文件 具体代码我贴出来   详细的解释我都写在注释里了 //用到的命名空间 using...System.Text.RegularExpressions; using System.IO; //注意名称空间 namespace my.Forum {     //继承自IHttpModule接口...id为1  page为1的参数了 具体的规则可以自己设置 我已经把示例文件传到网上了可以点这里下载 本文参考了discuz的代码 补充在类SiteUrls中用到了单件模式(设计模式)因为此文不是谈设计模式

    75130

    记Podman 的 no space left on device 错误和感悟

    点击上方蓝色“3分钟云计算”关注我们,设个星标,每天学习云计算知识 Linus 最聪明和最有价值的成就其实不是构建出一个Linux内核,而是他发明的这种Linux开发模式 - 《大教堂与集市》 在解决这个问题的过程中...这周二, 我使用Podman build image 的时候遇到空间不足的问题, jiazha-mac:~ jiazha$ podman build -t quay.io/olmqe/etcd-index...我突然意识到问题就出在这里,因为我的Dockerfile 是在家目录下的,而且我的家目录占用的空间很大。之后,我把Dockerfile 移动到一个文件夹下,重新build 就没这个问题了。...问题解决了,但是我觉得podman的这个行为不够友好(我想大多Podman 用户也没有意识到这个行为),为什么Podman build image 的时候要把整个上下文目录复制到 VM 中呢 所以我添加了...我在想为什么一个开源的产品要比闭源的更好呢,那是因为使用(测试)开源产品的人远比测试闭源产品的人多的多!

    29400

    java招聘面试

    8 我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。"。 答:你遇到了path问题。...21 我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。 答:java使用unicode,是双字节。...而System.in和System.out是单字节的stream。 如果你要输入输出双字节文字比如中文,请使用作者的做法。 22 我怎么从文件输入一个int/double/字符串?...23 我想读写文件的指定位置,该怎么办? 答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。 24 怎么判断要读的文件已经到了尽头?...你再也不用担心指针错误了. 30 我想知道为什么main方法必须被声明为public static? 答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。

    1.5K50

    应届生面试高频 Java 基础问题及实操示例详解

    不同实例的instanceVar相互独立,但staticVar只有一份。静态方法:同样属于类,可直接通过类名调用。静态方法中不能直接访问非静态成员(变量或方法),因为非静态成员依赖于类的实例。...Error:表示系统级的错误和程序不必处理的异常,是Java运行时内部错误或资源耗尽错误,如OutOfMemoryError(内存溢出错误)、StackOverflowError(栈溢出错误)。...父类静态成员和静态代码块:按照在代码中出现的顺序依次初始化。...子类静态成员和静态代码块:同样按照出现顺序初始化。父类实例成员和实例代码块:在创建子类对象时,先初始化父类实例成员和实例代码块,顺序也是按代码中出现的顺序。...如果需要进一步解释某个知识点或补充其他Java特性,欢迎告诉我。

    20910

    Java基础-22总结转换流,随机访问流,合并流,序列化流,Properties

    (s); System.out.println("当前文件的指针位置是:" + raf.getFilePointer()); // 我不想重头开始了,我就要读取a,怎么办呢?...* 而且产生这个值以后,我们对类进行任何改动,它读取以前的数据是没有问题的。 * * 注意: * 我一个类中可能有很多的成员变量,有些我不想进行序列化。请问该怎么办呢?...*/ public class PropertiesDemo { public static void main(String[] args) { // 作为Map集合的使用 // 下面这种用法是错误的...但是大部分我们看到的还是以前的IO (2)JDK7的NIO的使用 Path:路径 Paths:通过静态方法返回一个路径 Files:提供了常见的功能 复制文本文件 把集合中的数据写到文本文件...但是目前还不是大范围的使用。 * 有空的话了解下,有问题再问我。

    1.2K70

    java学习手册-java 新手入门必看的30个题

    8 我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。" 答:你遇到了path问题。...21 我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。 答:java使用unicode,是双字节。...而System.in和System.out是单字节的stream。 如果你要输入输出双字节文字比如中文,请使用作者的做法。 22 我怎么从文件输入一个int/double/字符串?...23 我想读写文件的指定位置,该怎么办? 答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。 24 怎么判断要读的文件已经到了尽头?...你再也不用担心指针错误了. 30 我想知道为什么main方法必须被声明为public static? 答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。

    1.2K60

    Java新手入门必看的30个题。

    8 我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。" 答:你遇到了path问题。...21 我发现有些书上直接用http://System.in和System.out输入输出,比你要简单得多。 答:java使用unicode,是双字节。...而http://System.in和System.out是单字节的stream。 如果你要输入输出双字节文字比如中文,请使用作者的做法。 22 我怎么从文件输入一个int/double/字符串?...23 我想读写文件的指定位置,该怎么办? 答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。 24 怎么判断要读的文件已经到了尽头?...你再也不用担心指针错误了. 30 我想知道为什么main方法必须被声明为public static? 答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。

    50520

    面向对象的思想,谈面试的过程?

    今天去面试的时候,面试官让我用面向对象的思想谈一谈这次面试的过程。 看到这个问题后,我思考了好一会儿,总觉得面试官的问法有点问题:为什么要用面向对象的思想谈一谈面试的“过程”? 有点矛盾,有没有?...1)为了保证包名的绝对唯一,Sun 公司建议将域名(绝对是独一无二的)以逆序的形式作为包名——这也是为什么包名经常以 org、com 开头的原因(是不是有一种豁然开朗的感觉)。...在初学 Java 编程的时候,我经常产生一个疑惑:为什么不使用 public 修饰成员变量呢?这样做不是比 getter/setter 更方便吗? 我最先想到的答案是这样的: ?...第一,类成员变量使用基本类型很容易造成NullPointException的错误;第二,在 getter/setter 增加业务逻辑的确很容易把实际的问题隐藏起来。 那,好的答案究竟是什么呢?...因为不是每个成员变量都需要 getter/setter。 5)每个类都至少会有一个构造方法。初学者可能会非常疑惑:我的那个类真的没有构造方法啊!

    61720

    没内鬼,来点干货!volatile和synchronized

    **假如所有线程都操作主内存的数据,是不是就不会有线程不安全的问题,随即引发下面的问题 为什么需要JMM内存模型 关于这个问题,我感觉过于硬核,我只能简单的想象假如没有JMM,所有线程可以直接操作主内存的数据会怎么样...,让用户无感知的享受多个进程运行的效果),线程在执行时候其实也是轮着来,假如A线程正在操作一个金钱数据,操作到一半,轮给B线程了,B线程把金额给改了,A线程最后又以错误的数据去入库等等,那问题不就大了去了...,为什么还是线程不安全?...-constants 显示最终常量 -classpath path> 指定查找用户类文件的位置 -cp path> 指定查找用户类文件的位置...-bootclasspath path> 覆盖引导类文件的位置 最后 感谢以下博文及其作者: 面试官没想到一个Volatile,我都能跟他扯半小时 死磕Synchronized底层实现-

    44520

    没内鬼,来点干货!volatile 和 synchronized

    ,然后操作一番,再放到主内存里面去 这个可以引发一个思考,这是不是就是多线程并发情况下线程不安全的根源?...假如所有线程都操作主内存的数据,是不是就不会有线程不安全的问题,随即引发下面的问题 为什么需要JMM内存模型 关于这个问题,我感觉过于硬核,我只能简单的想象假如没有JMM,所有线程可以直接操作主内存的数据会怎么样...,让用户无感知的享受多个进程运行的效果),线程在执行时候其实也是轮着来,假如A线程正在操作一个金钱数据,操作到一半,轮给B线程了,B线程把金额给改了,A线程最后又以错误的数据去入库等等,那问题不就大了去了...-constants 显示最终常量 -classpath path> 指定查找用户类文件的位置 -cp path> 指定查找用户类文件的位置...-bootclasspath path> 覆盖引导类文件的位置 最后 感谢以下博文及其作者: 面试官没想到一个Volatile,我都能跟他扯半小时 死磕Synchronized底层实现--

    54340

    ZooKeeper学习第三期---Zookeeper命令操作

    我们所描述的不是一个被动的分布式数据结构,而是一个主动的、能够在某个外部事件发生时修改数据项状态的数据结构。...Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } System.out.println("Created:"+path);...在接收到一个连接事件(由 Watcher.Event.KeeperState的枚举型值SyncConnected来表示)时,我们通过调用CountDownLatch的countDown()方法来递减它的计数器...虽然在这里我 们可以不使用观察,但在查看一个znode的子节点时,也可以设置观察,让应用程序接收到组成员加入、退出和组被删除的有关通知。...下面看一下ListGroup程序的工作过程:虽然搭建了分布式的ZooKeeper,但分布式ZooKeeper启动运行比较耗时,我在这采用前面 提到的复制模式下的ZooKeeper来进行测试。

    1.3K30

    抓 Bug 神器的工作原理——聊聊 Sentry 的架构

    [图片来自 Sentry.io] 2020 年二月份,领导让我负责在公司内部测试和使用 Sentry,彼时 Sentry 的文档还不是很完善,我也只是初步接触基础服务的搭建,Sentry 于我而言就是一个黑盒子...架构概述 下方这个图是根据 Sentry 官方文档重绘的,我把所有存储相关的组件用紫色的图形做了区分,其他 Sentry 服务组件用蓝色表示(除了顶部的应用)。...其他项目、成员、错误管理功能由 Sentry Web 负责。...Relay —— 错误信息处理的中转站 [Relay] Relay 收到原始数据后,主要做这几件事。...题外话 —— 为什么 Sentry 适合商用 以往的开源项目大部分可以看成是单个组件,升级修复的工作量对一般的工程师而言还是可以接受的。

    4.7K00

    精选Java基础面试120题

    Path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径。 classpath是指定你在程序中所使用的类(.class)文件所在的位置。...可以修饰成员(成员变量和成员方法) 被private修饰的成员只在本类中才能访问 2.13 为什么要有 this 关键字?this 关键字的含义?...this用来解决成员变量与局部变量重名问题 this关键字代表的是本类对象引用;谁调用我,this就代表谁. 2.14 final 关键字是什么意思,可以修饰那些成员?被修饰的成员有哪些特点?...this 代表的是本类对象的引用 , 谁调用我这个方法,这个方法里边的this就代表谁。...当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交其处理,这一过程称为捕获异常。

    1.1K20
    领券