个人觉得好用的软件

浏览器

chrome

优点:世界主流浏览器,插件丰富

缺点:消耗内存,被墙,无法直接同步

edge(google内核版本)

优点:直接用的chrome的内核,所以优点基本一样,同时可以直接用微软账号同步,以后windows应该会直接预装,所以以后估计很快edge的天下了。手机版也可以从各大商店下载(android)

缺点:暂时没有发现

压缩软件

bandzip

国外产品,基本无广告,在升级的时候有一点点广告,无任何弹窗,国内压缩软件基本都会带广告加干扰性的弹窗(它们是否加一个会员免广告,加一些会员功能,价格便宜一点,比喻一年10元之类,但估计没有广告赚钱,恶心循环)

远程工具

向日葵

我认为目前最好用的远程,毕竟老牌子。用户体验做的很好了,速度就看服务器了,我自己几年前买了永久,但大多数不用VIP渠道,所以感觉速度还可以。如果从体验角度看没有微软自己远程工具好,分辨率和权限在一些机器上会出现问题,比喻向日葵无法退出杀毒软件,这个应该是权限问题导致的。理论上从技术能解。

微信手机多开

多开分身(android)

产品稳定,广告比极少。我研究多开类产品中,从技术角度来说,这种可能封号概率比其他几个产品会好一些。

ios(没有)

没有,我自己不用。而且我觉得永远不会一个好用,IOS只能二次打包,但二次打包是不能上应用市场的,那么只能用证书打包,但企业证书基本都会掉,所以过一段时间就会掉,那么又要下载,因为证书不一样,包就不一样,那么以前消息记录就不存在,那么基本就很烦

截图软件

QQ或者TIM 截图功能还是很强的

snipaste:国外软件,截图功能非常强,如果不想用QQ,就可以用这个单独截图工具

待续

以后有时间再补充吧

云主机,VPS,虚拟主机区别(转)

作者:东楼听风
链接:https://www.zhihu.com/question/19856629/answer/129781552
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

从计算机的发展史来看:
1. 刚开始几乎都是基于物理机,服务器性能和稳定性比普通PC强,但是价格昂贵,一般企业用户才会使用独立的物理服务器(就是需要自己实实在在买一台设备放在那里)。性能强,但是无论用还是不用,机器和网络等成本都在那里。
2. 后来统计发现有很多的物理服务器其实使用率很低,平均cpu的使用率在20%以下。所以虚拟化技术便诞生了。在物理服务器内通过虚拟化技术,在一套操作系统的技术上,虚拟出很多套的独立运行的操作系统出来,从用户角度来看,就像是有很多台服务器可以使用(其实是运行在同一套物理设备里面)。提高了资源的利用率,共享资源从后降低成本。这一套套虚拟出来的独立的操作系统就是VPS。
3. 虽然有了虚拟化技术,但是依然需要安装系统,配置环境等各种操作,耗时耗力。如果我就是想架设一个网站,有没有更快速更偷懒的方法呢?虚拟主机就是这样的产品。虚拟主机其实是在一套安装好的操作系统上将环境配置好(asp+SQLserver、PHP+MySQL等),然后所有的用户公用一套环境。例如现在新增一个用户,那么虚拟主机管理程序直接在设定的路径新建一个文件件、另外在数据库创建一个子数据库,用户将网页代码通过ftp等方式传送到新建的文件夹内,并将数据存入新建的数据库,整个网站就已经弄好了,域名指向绑带后就可以直接使用了。简单快捷,但是因为是和别人公用一套环境,自由度不高,限制较多,很多人公用后性能也一般。
4. 亚马逊AWS是云服务的先驱,一直想把计算资源做成像水和电那样,随用随取、用多少算多少。后来随着技术的发展和概念的普及,越来越多公司进入了云计算的行业。例如微软Azure/阿里云/青云/腾讯云等等。云计算是将一大堆的服务器、网络、存储资源集合成大集群,当有使用需要的时候,便从一堆的资源中分配出来,用完后就释放。(此处的云服务器是指真正的云服务器,不是指很多拿VPS来冒充的)。
从价格来说:
独立服务器>云服务>VPS>虚拟主机
从用户的维护成本来说:
虚拟主机<VPS<云服务器<独立服务器
从对用户的技术要求来说:
虚拟主机<VPS<云服务器<独立服务器
从用户自由度来说:
独立服务器>云服务器~=VPS>虚拟主机
从供应商的技术要求来说:
云服务器>VPS>独立服务器>虚拟主机
从性能来说:
独立服务器》VPS~=云服务>虚拟主机(云服务比较难界定,如果花大价钱可能比普通独服更强)

第三方手机分身

背景

小米手机自带手机分身,基本能满足我自己需求,我无意见发现还有第三方的手机分身,相当于,手机模拟器 ,这个就比较强了,非常方便手机需要挂游戏或者其他的APP的。

作用

  • 私人空间,一部手机相当于多部手机,一些不敏感的内容可以放在分身的手机里面
  • 支持ROOT,这类的APP自带,默认关闭,如果分身跑QQ和微信建议关闭ROOT,一般这类软件都会检测是否有ROOT,如果有ROOT,可以对你的账号评分比较低,从而可能导致封号
  • xposed,有的自带的,有的需要自己安装,这样子再也不担心去ROOT了
  • 多开,可以无限多开,手机分身多个,同时手机分身里面可以装多开软件,相当于无限多开
  • google服务器支持,基本自带,可以设置。 这样子可以跑一些需要google的APP,比喻官网的android植物大战僵尸
  • 一些支持网络调试ADB 软件
  • 挂机游戏,这类产品主打玩游戏,后台挂机游戏,貌似集合一些插件,比喻自动点击等等
  • 修改机型

APP

  • 光速虚拟机(我用这个,因为默认支持本机配置,里面挂2个微信,防止封号)
  • vmos(支持自定义rom,支持多个)
  • x8沙箱(支持多个)

内存加载PE技术研究

一,背景

最近研究内存加载DLL技术,这个技术大概10年前的技术,用搜索引擎可以找到很多资料,我自己按照思路,综合其他各种实现思路,大概弄懂核心思路。

市面开源主流代码:

1:PE加载器,可以加载大部分程序,我测试TIM,微信都是可以,加壳的程序没有测试,代码写的非常专业,

https://github.com/polycone/pe-loader

2:DLL加载器,没有进程信息修改,貌似支持64位。

https://github.com/fancycode/MemoryModule

二,PE核心步骤

  1. 导入表修复
  2. 重定位表修复
  3. 进程信息修复(加载EXE才需要,DLL不需要)

三,疑惑问题?

1:为什么需要修复?

因为我们手动加载到内存,然后跳转到入口地址,开始执行代码,因为代码地址都是写死,每次加载都需要系统自动去修改,但我们手动加载就必须手动修改,所以才有修改导入表和重定位表。

因为我们调用函数和一些全局变量都是死地址,这些死地址记录在重定位表里面,所以我们需要修复他。

导入表记录API的地址,PE文件只记录名字或者序号,系统加载的DLL或者EXE会默认修改导入表的FristThunk(IAT),这里面保存API的地址,我们调用系统API的时候,我们调用的系统API的时候。我们调用导入表call的地址。

int main() {
    MessageBox(0, L"hello world", 0, 0);
    return 0;
}
这个导入表的IAT的地址,这里用IDA逆向,加载前等于INT。

CALL IAT对应变量(变量含有真的地址,我们IAT HOOK时候只要修改这个地址就可以了)

2:对齐

分为内存对齐和文件对齐,PE文件结构很多大小都是安装对应的对齐,PE文件保存了文件数据和内存数据,所以刚开始很容易搞混,说白就是告诉你文件怎么读和内存怎么读而已。因为PE是编译生成好的。

内存对齐:windows中,内存属性的基本单位是页,在32位系统是4KB(1000h),在64位系统中是8kb。
文件对齐:为了提高磁盘利用率,把一个物理扇区作为一个对齐粒度的大小,也就是12字节(200H),这是每个数据段都是200H的整数倍的原因。

为什么需要对齐的原因,性能问题。

3:偏移

所有都是基地址为偏移,内存加载就是内存分配起始地址做偏移

4:什么是导入表?

记录程序用哪些系统的API,同时加载后会被系统初始化,提供系统API的真正的地址,要软件能正常调用

资料:https://blog.csdn.net/Apollon_krj/article/details/77417063

5:什么是重定位表?

记录生成EXE或者DLL 函数死地址,如果重定向,就需要进行修改,默认是系统修改。但内存加载必须手动修改。

6:为什么会要重定向?

这种情况基本出现DLL,exe感觉永远不会,他是第一个模块加载,可以优先选位置,这个就好比我们小时候选读书的位置一样,每个都有选位置权利,我们默认可能都是最好一排,但如果我们的位置已经被人选择了,那么我们就只能选择其他的位置。我们编译程序默认按照最好位置涉及,一旦你的位置改变了,那么所有地址都需要更新。

7:为什么进程修复?(只针对EXE的情况)

我们加载的EXE,其实相当于一个新的模块,系统默认不知道的,所以当我们程序获取模块信息会获取不到或者错误,导致逻辑错乱。程序运行不了。如果不进行进程修复,MFC程序不可以内存直接运行的话,因为调用GetMoudleFileName 会获取为空。因为传入hinstance是我们假的地址,这个时候只要我们修改peb的里面模块List 基地址和peb的模块地址就可以了,改成内存new的地址。代码可以借鉴PE-LOADER。

这里PE-loader还对的一些进行hook

命令hook,传递参数,DLL可以直接调用的,可以传入保留那个字段为参数即可,因为PEloader 只针对 exe执行程序,不是针对dll,所以代码没有考虑,哪些需要修复可以通过逆向找到

8:以前人怎么想这个思路?

1:推想+逆向,函数+变量就可以做任何事情,远程注入代码逻辑,分配内测然后注入代码,就可以直接执行,但没有注入DLL舒服,内存加载DLL是为了隐藏DLL,这个好处有很多,防止报毒和加大别人分析代码难度。

2:通过微软的文档,知道系统大概逻辑,我猜测PE-loader就很类似这种,因为他的函数命名就是跟微软底层API命名一样。

9:官网文档?

介绍系统加载DLL的逻辑

https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_data_directory

PE 格式 微软资料

https://docs.microsoft.com/en-us/windows/win32/debug/pe-format

四:总结

围观:学习PE内存加载知识,熟悉PE结构

宏观:优化解决问题能力,怎么通过一个知识点,然后找到对应解决方案,然后通过分析了解,找到一个成熟的解决方案

我自己代码后面再贴,目前有好多日志,主要为了学习用途。

window defender 自带杀毒软件添加白名单

一,背景

我们很多工具类软件,为了防止破解会进行加壳,这些软件如果没有数字签名就会报毒,所以我们有的时候为了使用,所以必须加入白名单,不用每次更新都手动操作一下。

二,过程

  1. 依次转到“开始”菜单  >“设置” >“更新和安全” >“Windows 安全中心”>“病毒和威胁防护”。
  2. 在“病毒和威胁防护”设置下,选择“管理设置”,然后在“排除项”下选择“添加或删除排除项”。 
  3. 选择“添加排除项”,然后选择相应的文件、文件夹、文件类型或进程。排除项也会应用到文件夹内的子文件夹。