裤子搭建日志(长期更新)

前言

哪个男孩子不想拥有一条自己的裤子呢?
因为闲得无聊,所以也想整一个,正好看到盘里有以前老哥丢过来的各种东西
再加上学校的网速还算给力,于是就萌生了自己搭一个的念头。
二话不说,走起。

首先是资源,这个说好找也挺好找,说难也蛮难的,泄露出来的数据,轻轻松松上百G吧

比如 群关系数据啊,如家汉庭啊,nulled.io啊,前者90G,中间这个23G,后门那个13G,再加上什么各种QQ老密数据(9G左右),网易泄露的,以及soyun裤子流出(30G)左右。几百G倒还真的不难

现在的问题是,如何查询。
因为是自己用,所以性能要求不是非常高。但是在学校工作站部署了下soyun的裤子,虽然说内存只有4G是有限制,但是怎么说也是个E5-2603 v2啊,查询4e条数据一次竟然要9分钟= =
所以现在正在尝试解决方案。

数据处理

我第一个处理的是soyun社工库,网络上直接一个soyun.bak。
这个数据库的处理方法我十分的蠢,我的想法是mssql x1 => txt x N -> mysql x N
于是乎,我的解决方案如下

declare my_cursor cursor for 
select site from [test2].[dbo].[temp] 

open my_cursor                  
declare   @name varchar(50)
declare   @cmd  varchar(250)
fetch next from my_cursor into @name
while @@FETCH_STATUS=0 
begin
  print('bcp "SELECT * FROM [test2].[dbo].[sgk] WHERE [site]='''[email protected]+'''" queryout "I:\'[email protected]+'_.txt" -c -S".\S2" -U"sa" -P"jikebianqiang"')
  set  @cmd = 'bcp "SELECT [name1],[pass],[email] FROM [test2].[dbo].[sgk] WHERE [site]='''[email protected]+'''" queryout "I:\'[email protected]+'_.txt" -c -S".\S2" -U"sa" -P"jikebianqiang"'
  EXEC master..xp_cmdshell @cmd
  fetch next from my_cursor into @name 
end
close my_cursor
deallocate my_cursor

先把网站[site]数据保存到[tmp]临时表,然后如上遍历临时表用cmd执行导出工具。
这样做能跑,但是有个很大的问题。。。
那就是,一次只能做一次查询,where一次只能输出一条结果到一个目标,然后从头跑一次。
这样做的后果呢。就是,库里有108个站点,然后完全读取一次数据库的时间需要9min。
9*108/60≈16,结果就是我整整跑了16小时才跑出结果

更新

因为某种原因,直接用Bcp跑导出所有表,然后用python处理了,结果运行速度更慢= =
代码如下

#coding:utf-8

import os,shutil,time
meta = {}
out_dir = "i:\\out"
with open("I:\\all.txt", 'r',encoding='gb18030',errors='ignore') as file:
    while 1:
        lines = file.readlines(100000)
        if not lines:
            break
        
        for line in lines:
            s = line.split("\t")
            
            if len(s) != 4:
                continue
            #print(s)
            t = s[3].strip().replace("\n","").encode("utf-8").decode()
            o = None
            if t == "":
                t = "None"
            if not os.path.isdir(os.path.join(out_dir,t)):
                try:
                    os.mkdir(os.path.join(out_dir,t))
                except Exception as e:
                    o = str(int(time.time()))
                    os.mkdir(os.path.join(out_dir,o))
            if t not in meta:
                if o != None:
                    out = open(os.path.join(out_dir,o,"0.txt"),"ab+")
                else:
                    out = open(os.path.join(out_dir,t,"0.txt"),"ab+")
                meta[t] = [0,0,out,o]
            
            meta[t][1].write(("%s\t%s\t%s\n" % (s[0].strip(),s[1].strip(),s[2].strip())).encode("utf-8"))
            
                
            meta[t][2] = meta[t][3]+1
            if meta[t][4] >= 5000000:
                meta[t][5].close()
                if meta[t][6] != None:
                    meta[t][7] = open(os.path.join(out_dir,meta[t][8],str(meta[t][0])+".txt"),"ab+")
                else:
                    meta[t][9] = open(os.path.join(out_dir,t,str(meta[t][0])+".txt"),"ab+")
                meta[t][0] = meta[t][0] + 1
                meta[t][10] = 0
            #line = file.readline()

总之八成是我的代码有问题,不过这样无所谓了。
先处理手头一些比较新的把,这个东西数据比较慢,就在后面慢慢跑吧。

库表设计

既然按照分表了,那么就不能单纯的 username,password,mail,phone,site这样一个表怼了。(soyun的就是这样直接储存4e数据的,震撼鳖鳖!
那么接下来就是设计如何分表。

我的设想是,按照不同的站区分成不同的库。然后根据数据量来。
比如一些小且杂的站点(比如自己脱的),都分在一个库。
目前主要麻烦的就是那些大公司的。比如腾讯网易等。
还有邮箱杂库等等。
这里我打算利用MERGE存储引擎来进行拆分设计。

详情可以参考这个:

使用MERGE存储引擎实现MySQL的分表机制

之后接下来,就是数据重复的问题了。
使用mysql的LOAD

load data local infile "course.txt" into table course
fields terminated by ',' lines terminated by'\r\n';

十分轻松的就导入了

更新x2

试着查询了一下
photo_2019-12-22_22-09-41.jpg
仅仅700w的数据,就需要1min16s,实在是太慢了
估计得想办法换成Nosql,我试试mongodb的水

更新x3

后来,设置了下索引,发现其实查询速度海星?
甚至查询速度比我笔记本本机都快。
photo_2019-12-25_00-47-07.jpg
明明count()的速度比我本机慢好多好多。。
photo_2019-12-25_00-47-07.jpg
photo_2019-12-25_00-47-15.jpg
搞不懂了。
不过目前能搞清楚的是,裤子能继续用了,查询的速度在能接受的范围内。

2020-2-12更新

龟速导入了好久,然后终于再前几天导入的差不多啦。
基本7-8E左右的数据。
然后需要去重
photo_2020-02-12_22-30-51.jpg
用了这个方法去重,连续500M的速度跑了11h之后,我当心我的SSD要炸了,于是就终止了。
放弃了去重的想法,将就用吧。

Tags: 裤子

【竹笛+钢琴】红楼 ~Eastern Dream~

也许是最近电脑搞太多了,感觉心里怪怪的。所以比平常抽出了0.1成左右的时间整了这些东西吧。

电脑音响和麦克风都太垃圾了。倒是录制和播放效果都不好,录制高音爆音,播放的话,伴奏调太大声了,因为电脑音响不好听不出来,拿到手机一听,哦吼GG。咱也懒得改了。

最近天冷然后琴也不行了,笛子的配重基本都掉出来,这也还好,最主要的是那个琴,你按下去了还不止,还得把它扣起来。在视频里就可以看到,而且还有概率弹起和不弹起,所以视频里右手显得手忙脚乱的hhhhh

总之就这么多了。

Tags: 东方, 音乐, 钢琴, 竹笛

写了个超土的土嗨

哈哈哈哈哈,睡前无聊的场务,上学期间看的视频,现在想起来试着写了下,不得不得说有点上头

因为只是试试水,所以很多润色都没有,共计二十分钟所有吧。现在脑袋里一直都是这个旋律停不下来。

min版本,本来主旋律和副歌应该多loop一段的,但是为了节约我就直接写一句就下一章节了。中间高潮就那么将就一下,包络我也没画,不过大概就是那种感觉。

播放地址:min版本.mp3

Tags: 编曲

【钢琴】欲望加速 ~Desire Drive~

欲望加速 (x)
欲望减速 (√)
每次打开摄像头的时候,就仿佛自己的手被上了debuff一样,各种奇怪的地方总是有一两个小错音,导致自己心态炸裂high到不行,
我称呼这个为摄像头biss定律.jpg手动狗头。
这首曲子很早很早在上学的时候就想莫啦然而上学嘛大家都懂的,然后正好这次在家闲着无聊就摸下来了。
依旧是五毛特效
中途被自己的短信给吓到了可还行。
谱子在这:https://www.youtube.com/watch?v=5ggEXAQMXo4
这次就懒得找封面拉

Tags: 钢琴

换了个主题

换了个主题,之前那个实在太破了。
不知道用啥,看朋友都在用VOID,然后自己另外一个站也在用VOID,按寻思就也换成了VOID了。
之前那款主题,可以说是从建站用到现在吧,经历了我的各种魔改,依旧没拥有花里胡哨的功能。
不过那种过时的风格也该退役了吧。
没了也好,就这样了。
可以光明正大的放萌豚图了,yeah

Tags: 日常

新年快乐

新的一年多多关照啦!
打算换个主题。有什么萌豚主题推荐嘛

Tags: 新年

打造一款socket型免杀无弹窗的shellcode

自己写马子太痛苦了。
然后发现了,cs,msf这些工具又很香。只是碍于这些东西。
没办法,重!启!上!线!
免杀什么的其实都是小意思。主要还是重启上线等一堆功能。
所以就打算在这里记录一下,从零开始的,打造一款无弹窗免杀的shellcode吧。
为了不吊大家胃口,我就直接写出原理吧。
其实也不难。

就是一个写一个shellcode带有socket+rc4加密跑远端加密后的cs的payload下载下来后执行。然后利用启动项劫持技术,绕过杀软的启动保护。

再高级一点的话,就是把启动项劫持,改成用masm编写超迷你型的shellcode装载器,然后插入目标的PE空隙中,然后修改OEP指向我们的空隙然后执行完shellcode后再跳转到入口点。

启动项劫持的原理就是,360虽然禁止对启动项进行增改,但是删和查是可以的,并且对于启动项/服务项中的目标程序并没有进行保护。所以我们可以对启动项的程序进行劫持替换修改都是没问题的。或者不对启动项劫持进行替换,而是找到一个运行中的服务,kill掉它的进程,然后对服务源程序进行劫持也是可以的。原理都差不多。

总之就是这样,考完了应该会去研究一波。

至于payload,有两个方案。

可以自己写,难度有点高,可以参考

二进制入门-打造Linux shellcode基础篇

但是这种东西,一般顶天给你整个下载者。和cs那种全部功能纯shellcode还是不一样的。你下载者最终还是需要下载的你的二进制文件,达不到“负载无文件”(不是纯无文件,毕竟你的shellcode还是需要的),可能会导致你的马子被检测到。

payload难主要难在,对于API地址的定位,不过一般只要找到LoadLibrary的地址,其实还算是好说的啦。
还有难就难在栈平衡这些。
下次研究一波。
实在不行,直接整个PELOADER,自建一个RVA导入,不过传输EXE的话可能会被杀软拦截emmm,但是都能传shellcode了,传个加密的PE到内存理论上也是没关系的吧,

所以还是推荐直接使用cs或者msf,简单粗暴。

最后研究出的地址在这里

shellcode-9bie

带有直接运行和服务启动效果。
怎么用我懒得说了,只能说不添加 启动的话,能无弹窗过360+主防吧。
目前发现还不能过诺顿,待我研究一波。

同时吐槽一下遇到的一些坑。

c++的string,是非常的香的。不需要free(char );(char)malloc();这种操作的。
但是,还是碍于X问题,0会被截断。
千万不要使用str开头的函数来处理std::string.c_str()的东西。str开头的函数遇到0会自动截断,被这东西坑了好久= =
建议使用mem开头的,而且带_s,指定长度,合理控制内存。

Tags: 免杀

2019 年度总结

回首2019 1/1,仿佛就在昨日一般。
感觉时光飞逝。
看了看博客的日志,我才发现,“卧槽?原来这是今年的事情了吗?我还以为这是去年或者前年的了”
总体来说,2019,算是 技术飞跃的一年
2019大事记

  • 博客改用https
  • 开始使用github
  • golang/c/cpp 水平指数级提高
  • 日zh*n水平指数级提高
  • 写出第一首完整的曲子
  • 乐理 ++
  • 专业水平(竹笛)++
  • ero后端填坑完毕,初步步入正轨

以上就是2019干的一些小事情啦。
当然还有很多是没有达到预期的。
比如说

  • ML(高数是真的学不来
  • ERO还是没整活
  • 钢琴水平提升并不高

总体来说,2019就这么过去了。
感觉上一个念头还在想着,成年了该咋样呢,结果成年了,世界也并没有什么改变,不如说一晃眼 ,都成年两年了。
再过几个月,我也是要步入2字头的人了啊,哎

感觉自己还是很菜,越学越菜,但是我越想学。

感觉自己文笔变差了。是不中二了吗?感觉没之前写的好了,

既然这样,那就先这样吧。

Tags: 随笔