Fork me on GitHub
摘要: 本博客打算停止更新,已发布的博客不会删除,不会迁移到新博客,待博客园审核过后即可见。 停止更新原因: 使用博客园数年,发了几百篇文章,对个人成长帮助很大,感谢博客园提供的平台,但感兴趣的技术越来越不太符合社会主义价值观,不写难受,写了也不能发,为维护国内网络环境出一份力,遂决定挪窝。 新博客地址: 阅读全文
posted @ 2021-04-15 23:39 CC11001100 阅读(703) 评论(1) 推荐(3) 编辑
摘要: 一、Electron打包出来的程序特征识别 二、Electron打包出来的文件的结构 将electron打包出来的exe文件修改为zip后缀,并用压缩文件解压,观察解压出来的结构:这里的重点是resources文件夹和这个exe文件,resources文件夹下有个app.asar是项目源码的归档文件 阅读全文
posted @ 2021-01-17 22:30 CC11001100 阅读(24567) 评论(2) 推荐(2) 编辑
摘要: 一、使用electron-builder打包 二、分析electron-builder打出来的包 三、使用electron-packager打包 四、分析electron-packager打出来的包 五、总结 1. Electron是跨平台的,打包的时候需要区分不同的平台打包。 2. Electro 阅读全文
posted @ 2021-01-17 22:21 CC11001100 阅读(3629) 评论(1) 推荐(1) 编辑
摘要: 一、主进程和渲染进程 1.1 主进程和渲染进程的概念 1.2 主进程和渲染进程的环境区别 二、主进程与渲染进程通信 2.1 渲染进程向主进程发送异步消息 2.2 渲染进程向主进程发送同步消息 2.3 主进程向渲染进程发送消息 2.4 代码及运行效果一览 阅读全文
posted @ 2021-01-17 22:05 CC11001100 阅读(5371) 评论(0) 推荐(0) 编辑
摘要: 难度:★☆☆☆☆ 1星 一、目标 二、分析 三、编码实现 请注意爬虫文章具有时效性,本文写于2020-11-17日。 阅读全文
posted @ 2020-11-25 20:17 CC11001100 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 难度:★☆☆☆☆ 1星 一、目标 目标网站: https://www.500d.me/login/登录的时候提交表单里密码字段enPassword是被加密的:本次目标就是破解这个参数加密。 二、分析 打开登录页:https://www.500d.me/login/打开开发者工具,切换到Network 阅读全文
posted @ 2020-11-25 20:02 CC11001100 阅读(846) 评论(1) 推荐(1) 编辑
摘要: 难度: ★☆☆☆☆ 1星 一、缘起 二、分析 三、编码实现 请注意爬虫文章具有时效性,本文写于2020-11-25日。 阅读全文
posted @ 2020-11-25 19:44 CC11001100 阅读(1763) 评论(0) 推荐(0) 编辑
摘要: 发现有些网站的编码方式比较特殊,使用requests直接请求拿response.text是得不到正确的文本的,比如这个网站: 阅读全文
posted @ 2020-11-25 19:38 CC11001100 阅读(1153) 评论(1) 推荐(1) 编辑
摘要: 难度: ★☆☆☆☆ 1星 一、目标 二、分析 三、编码实现 阅读全文
posted @ 2020-11-25 19:08 CC11001100 阅读(1086) 评论(0) 推荐(1) 编辑
摘要: 难度: ★☆☆☆☆ 1星 一、目标 目标网站:https://www.baibianip.com/home/free.html在这个网站的IP列表中的IP地址,是通过JS解密出来的:查看源代码(view-source:https://www.baibianip.com/home/free.html) 阅读全文
posted @ 2020-11-25 18:57 CC11001100 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 难度: ☆☆☆☆☆ 0星 一、目标 这个链接是一个代理列表:http://3bodyhome.com/proxy正常的来讲应该是有数据的,但是不知道为啥这里没有,可能是挂了,不过这个不是重点,打开开发者工具,看下Network里有个接口:http://3bodyhome.com/proxy?page 阅读全文
posted @ 2020-11-25 18:46 CC11001100 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 难度: ★☆☆☆☆ 1星 阅读全文
posted @ 2020-11-25 18:21 CC11001100 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 难度: ★☆☆☆☆ 1星 阅读全文
posted @ 2020-11-25 18:13 CC11001100 阅读(1668) 评论(0) 推荐(0) 编辑
摘要: 难度: ☆☆☆☆☆ 0星 阅读全文
posted @ 2020-11-25 17:59 CC11001100 阅读(3366) 评论(0) 推荐(0) 编辑
摘要: 一、 缘起 二、观察 三、 思路一:想办法得到正确的注册码 四、 思路二:把注册验证框干掉重新打包 阅读全文
posted @ 2020-11-14 23:33 CC11001100 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: crackme_0x01 crackme_0x02 crackme_0x03 阅读全文
posted @ 2020-11-14 23:09 CC11001100 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: AndroidStudio版本: 4.0.1使用AndroidStudio进行ndk开发很简单,我们的目标是生成一个so文件,里面有一个getSign方法,在Java层调用so文件中的getSign方法获取。先创建一个NDK项目,创建的时候拉到最下面选择Native C++,然后Next:然后输入项目的名字:这一步保持默认即可(反正我也不懂C++...):创建完项目之后糟糕红色叹号了,有这么个提示... 阅读全文
posted @ 2020-11-14 21:36 CC11001100 阅读(2015) 评论(0) 推荐(0) 编辑
摘要: 一、 壳是什么东西 二、 PKID的下载 三、 PKID的使用 四、 识别原理简介 阅读全文
posted @ 2020-11-14 21:22 CC11001100 阅读(17246) 评论(0) 推荐(2) 编辑
摘要: 问题描述 解决方案 阅读全文
posted @ 2020-11-14 21:18 CC11001100 阅读(1152) 评论(0) 推荐(0) 编辑
摘要: 一、 Basic Android RE 1 https://ctflearn.com/challenge/962 没啥特别说明,只说了这是一个apk文件,让你自己找乐子,OK,先下载文件: https://ctflearn.com/challenge/download/962 或是从我的GitHub 阅读全文
posted @ 2020-11-14 20:57 CC11001100 阅读(1023) 评论(0) 推荐(1) 编辑
摘要: 可以看到蓝色光标向下移动了一条指令,同时pc寄存器的值也跟着发生了改变,刚才pc寄存器的值是0x8000,现在变成了0x8004,因为我们是ARM模式,每条指令32位,正好是4个字节,所以每执行完一条指令pc寄存器的值往前移动4个字节。同样变红色的还有r0,因为MOV R0, #0x1这条指令将1赋 阅读全文
posted @ 2020-11-14 20:34 CC11001100 阅读(3977) 评论(1) 推荐(0) 编辑
摘要: 如题,虽然我也不知道这是什么原理,但就是有用,平时出手汗或者手乱摸东西没洗再用键盘会有一些涩涩的很不流畅的感觉,可能是因为有手泥,但是如果出现这种感觉的时候立刻起身去洗一个手,擦干回来再打字那叫一个丝滑顺畅能爽好大一会儿....之前以为是键盘的原因,特地做了对照组实验证明是洗手的原因,感觉此技巧很有 阅读全文
posted @ 2020-11-13 21:18 CC11001100 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 买域名的时候看到的一个验证码,感觉蛮有意思的(https://www.namesilo.com/create_account.php),这个质感看上去就不一样:查看页面源码,果然这个验证码是用html的标签拼接出来的:当然这种验证码是比较容易破解的,它是请求这个接口拿到的验证码html数据:https://www.namesilo.com/captcha_generate.php返回的数据被url... 阅读全文
posted @ 2020-02-27 23:07 CC11001100 阅读(853) 评论(0) 推荐(0) 编辑
摘要: HBase服务器在一台腾讯云上,本地Windows系统连不上,代码如下:package cc11001100.hbase.baseOperation;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase... 阅读全文
posted @ 2020-02-23 22:56 CC11001100 阅读(13765) 评论(1) 推荐(0) 编辑
摘要: 有时候在网站注册了账号,但是没有保存密码什么的,后来就把密码忘记了,只好找回密码了,又是短信验证又是邮箱验证的搞得很麻烦,如果Chrome有帮我们记住密码的话我们自己就可以很方便的将密码找回而不必进行一大坨验证加重置密码。比如我在v2ex的密码我就忘记了,但是浏览器知道,在登录的时候它会自动帮我填写:那么我要如何看到这个值呢?可以看到密码框是个password类型的input,password显示... 阅读全文
posted @ 2020-02-23 20:22 CC11001100 阅读(2503) 评论(0) 推荐(0) 编辑
摘要: 一、什么是omniboxomnibox是什么呢,这个干说没啥意思,一图抵千言:上面这幅动图就是一个omnibox的例子,首先是用户在地址栏上输入了一个关键词并按下tab键,当检测到特定的关键词与我们事先指定的关键词相匹配时将调用对应的插件,这个关键词是在manifest.json文件中设置的,按下tab键,接下来用户再输入的东西将会传给插件,同时我们知道,一个输入框会有很多个事件,为了更好的与用户... 阅读全文
posted @ 2020-02-23 19:24 CC11001100 阅读(2846) 评论(0) 推荐(1) 编辑
摘要: 引入typescript就是为了有类型组织代码和静态检查开发起来会更爽的,结果发现默认情况下ts对于chrome extension的api识别不了,需要引入另外的类型库:https://www.npmjs.com/package/@types/chrome这个库定义了chrome扩展的api,使得在ts中能够进行chrome extension api的代码提示与静态检查,大大提高开发效率。先为... 阅读全文
posted @ 2020-02-23 17:20 CC11001100 阅读(3491) 评论(1) 推荐(0) 编辑
摘要: 这是个非常非常简单的js加密链接。 这是一个导航网站,实际链接到的网站的url被加密了,并没有直接显示在页面上,首先开发者模式选中链接元素: 发现这个链接有一个onclick事件,是调用了visit方法传入了一个很长的看上去像是base64的字符串,猜测实际的url应该就是根据这个字符串生成的,但是 阅读全文
posted @ 2020-02-20 20:07 CC11001100 阅读(3547) 评论(0) 推荐(0) 编辑
摘要: 一、脚本之家的在线工具 有时候开发了一款web在线使用的工具,比如类似在线base64编码解码之类的,或者其它的比较有意思的小工具,可能就被别人瞄上盗走源码据为己有了,为了与“盗码者”做斗争,开发者就想各种招数去保护自己的代码,脚本之家也有一套在线工具,使用了比较简单的方式去检测盗用代码,这次就来看 阅读全文
posted @ 2020-02-20 20:05 CC11001100 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 0x00 引子靶机主页:https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/先看描述:这是个菜鸟级的任务,我们的目标是拿到两个flag,在哪儿,不知道。0x01 主机 & 服务发现把靶机下载下来在VMware中启动,会自动通过DHCP获取ip地址,先看下当前网络内存活的主机都有哪些:对比我虚拟机DHCP的IP池可以知道192.168.1... 阅读全文
posted @ 2020-01-17 00:56 CC11001100 阅读(1105) 评论(0) 推荐(0) 编辑
摘要: 一、缘起无聊想玩搜个游戏玩,看到一个帖子引起了我的好奇:但是作者分享的游戏链接已经挂掉了,于是就搜索了一下:选了7k7k上的一个在线玩,链接:http://www.7k7k.com/swf/153466.htm,但是悲剧的是这哥们跳楼的决心很强,不管好说歹说愣是不听不听王八念经,坚信纵身一跃能够解决所有烦恼,搞得我很郁闷,于是就想扒拉出源代码看看这个sb的逻辑到底是啥,咋这么油盐不进呢。二、分析7... 阅读全文
posted @ 2019-11-25 01:55 CC11001100 阅读(1111) 评论(1) 推荐(0) 编辑
摘要: 一、缘起想做的事情太多,计划乱糟糟,想找个工具理一下,想起来了的很久之前用过teambition,打算看一下,然后在登录界面看到一个比较有意思的验证码:这种倒是比较有意思哈,看着像是模仿12306的那种,12306的破不了(我真人都要刷几次才能对。。。),这个简单版的还破不了吗,于是激发了我强烈的破解兴趣。二、分析打开开发者工具,先选中看一下先: 首先比较雷的是“地球”竟然是文本显示在页面上的,这... 阅读全文
posted @ 2019-11-20 23:36 CC11001100 阅读(1062) 评论(0) 推荐(0) 编辑
摘要: 一、什么VirtualNES?什么是金手指?VirtualNES是一个NES模拟器,用来运行.nes文件,即在电脑上玩当年小霸王游戏机上的游戏。而它内置了一个简单的Cheat Engine,称之为金手指,使用方法基本同CE相同,即想修改游戏中的 某个参数,就通过不断的修改它的值来找出它的内存地址,从而修改锁定这个地址的值来达到不掉血、资源无限用等等乱七八糟的功能。二、实战:伏魔三太子本次要修改的游... 阅读全文
posted @ 2019-07-19 00:50 CC11001100 阅读(5681) 评论(1) 推荐(0) 编辑
摘要: 在验证有向无环图相关的各种算法时需要一些测试数据,手动构造的话太麻烦了,于是便想着能不能自动生成一些测试数据来。这个问题的难点在于如何保证生成的图没有环,查了一下相关资料,这个可以借助拓扑排序的原理来实现,想象一下一个有向无环图要对其拓扑排序,需要从图中找出一个入度为0的顶点,将它和它的出边都从图中删除,重复执行这个操作直到图为空,只需要逆向执行这个过程即可从拓扑排序的结果恢复出一个有向无环图,比... 阅读全文
posted @ 2019-02-02 19:01 CC11001100 阅读(4099) 评论(0) 推荐(0) 编辑
摘要: 一、简介 在Linux中合并文件可以使用cat命令,后面跟上要合并的文件然后重定向到一个新的文件中即可,甚至可以追加合并。但如果要将一个大文件分割为多个小文件应该如何操作呢? 在Linux的coreutils中有一个工具split实现了这个功能,可以把一个大文件切割为多个小文件,甚至可以借助管道将流切成固定大小的文件,切割规则可以使用行数,也可以使用字节数。 二、预备测试数据 先生成一个稍... 阅读全文
posted @ 2019-01-27 13:46 CC11001100 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 一、什么是数据本地性(data locality) 大数据中有一个很有名的概念就是“移动数据不如移动计算”,之所以有数据本地性就是因为数据在网络中传输会有不小的I/O消耗,如果能够想办法尽量减少这个I/O消耗就能够提升效率。那么如何减少I/O消耗呢,当然是尽量不让数据在网络上传输,即使无法避免数据在网络上传输,也要尽量缩短传输距离,这个数据需要传输多远的距离(实际意味着数据传输的代价)就是数据... 阅读全文
posted @ 2019-01-22 02:02 CC11001100 阅读(5184) 评论(1) 推荐(2) 编辑
摘要: 题目: 给定一个int数组,长度为n,数组中每个元素为随机整数,可能为负数,可能为0,可能为正数,要求将数组按照符号排序,所有的负数在左边,正数在右边,零在中间,负数和负数之间不需要有序,正数和正数之间也不需要有序。 数据约束: 0 0) { result[right--] = nums[i]; } } return result; } public static... 阅读全文
posted @ 2019-01-20 23:26 CC11001100 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 一、什么是RPC RPC(Remote Procedure Call)即远程过程调用,简单的说就是在A机器上去调用B机器上的某个方法,在分布式系统中极其常用。 rpc原理其实很简单,比较容易理解,在rpc中有两个角色,rpc server和rpc client,先从client开始讨论,因为client要像调用普通类的方法那样调用server端的方法,比如client要调用server端的Fo... 阅读全文
posted @ 2019-01-15 18:29 CC11001100 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 一、分布式锁概述 Java中基于AQS框架提供了一系列的锁,但是当需要在集群中的多台机器上互斥执行一段代码或使用资源时Java提供的这种单机锁就没了用武之地,此时需要使用分布式锁协调它们。分布式锁有很多实现,基于redis、基于数据库等等,本次讨论的是基于zk实现分布式锁。 免责声明:下面的分布式锁是本人学习zk时根据其特性摸索出来的实现,并不代表业内权威做法,仅作为不同的思想碰撞出灵感的小火... 阅读全文
posted @ 2019-01-14 22:43 CC11001100 阅读(3158) 评论(2) 推荐(1) 编辑
摘要: 一、lazy关键字简介 lazy是scala中用来实现惰性赋值的关键字,被lazy修饰的变量初始化的时机是在第一次使用此变量的时候才会赋值,并且仅在第一次调用时计算值,即值只会被计算一次,赋值一次,再之后不会被更改了,这个特性有点熟悉哎?没错,所以lazy修饰的变量必须同时是val修饰的不可变变量。 下面是一个惰性赋值的例子:package cc11001100.scala.lazyStudy... 阅读全文
posted @ 2019-01-09 12:35 CC11001100 阅读(1518) 评论(0) 推荐(1) 编辑