青春时代是一个短暂的美梦,当你醒来时,它早已消失得无影无踪了。
 
今日:0    总帖:361
admin
5606
转载自:http://mp.weixin.qq.com/s/9GN0cxATX56GY8iss8HE3A作者 | 小九来源 | 每日七言(ID:mrqy88)================================================================离家的路有千万条外面的世界复杂又精彩可在家的爸妈心里只有一个期盼等你早日回家团圆中秋前夕,71岁的山西老两口抓紧推石磨准备辣椒酱,盘算着给六个孩子回家返程带上。没想到,一连接到几个电话,得知儿女都回不来,大爷忍不住哭了:“哪怕回来一个呢。”我们总以为,多挣点钱,有能力给爸妈买点好的是尽孝。可爸妈最期盼的,却是儿女能常回家看看,一起吃顿团圆饭。爸妈准备了一桌好菜,你夸一句好吃,他们就会喜笑颜开;饭后聊聊工作和生活,再琐碎的事儿,他们都听得津津有味。作为这个世界上最疼你、最关心你的人,他们不图你的回报,却始终处处为你着想。来时欣喜,走时伤感,再次离家时,总是不忘让你带上家乡的味道。塞得满满当当的行李箱里,都是爸妈沉甸甸的牵挂和爱。 01 南京禄口国际机场一位大叔行李箱超重30斤里面装的是母亲亲手做的煎饼和咸菜▼每一只临走的行囊都装着沉甸甸的亲情每一个游子的心里都有着暖融融的不舍 02 早上回无锡妈妈说给你煮两个鸡蛋带着我说可以啊结果煮了17个让我带着@Leo—JI▼父母能给你的不一定是全世界最好的但一定是竭尽全力给了你全部还生怕不够 03 省吃俭用一年全攒给儿女了@朱小桃happy▼只要和孩子有关哪怕一口吃的都是父母心目中的大事 04 随口抱怨了一句在外地吃不到口味正宗的火锅妈妈就在我行李箱里塞了好几袋火锅调料@中书护法▼不管走多远都别忘了家乡的味道不管走多久都别忽视爸妈的牵挂 05 我妈觉得外地消费高能省一点是一点给我装了很多吃的还塞了一把衣架@特蕾莎的浅笑▼离家之后才明白之前的岁月静好都是父母在替你负重前行 06 奶奶给我带的饺子不会写字的她画了图让我区分馅料@simple-小璐▼如果一个人真的爱你一定会想尽办法,竭尽所能 07 和老公开了一辆越野车回家回来的时候其余的座位和后备箱全部塞得严严实实@陈帅哥的鸡宝宝乖乖▼在这个世界上没有人比爸妈更爱你 08  爸妈非要给我带的土鸡蛋用米小心翼翼地保护好坐地铁的时候摔了几个心疼得要死不过没有扔,都打出来准备全部吃掉@圆圆嘀我▼无论你在哪儿背后都有父母默默的关心 09 我妈一个夏天照的节龟(知了的幼虫)冻在冰箱里临走前一天连夜炒熟让我在火车上吃@老乡开门我们真的是八路▼分明已经立业成家父母却永远把你宠成孩子 10 爷爷给拿了满满一行李箱土鸡蛋和咸蛋怕区分不开还做了标注@臭屁篓的小兽兽▼从来不说“我爱你”却一直用行动爱着你 11 回家一趟带回来的东西能装满冰箱@一层一层一层剥开你的皮▼可怜天下父母心心甘情愿地付出却从来没有想过回报 12 妈妈提前两个月给我做腊肉还装了快60斤自家种的大米满满的都是爱@泡泡蛮可▼衣裳再添几件饭菜多吃几口儿行千里母担忧 13 我妈给我装的葡萄干家里种的葡萄一滴农药没喷过不加催干剂,自然风干吃起来特别甜,特别放心@我和燕子的日常▼爸妈不求别的只要你健康快乐你的小幸福就是他们的大幸福 14 我爸偷塞给我的钱@请call我刘大菲▼“多吃点好的,多吃点菜别委屈自己没钱了跟爸妈说” 15 别人送给奶奶的嘉顿饼干她没见过,觉得很珍贵藏了快一年舍不得吃等着我回去给我其实饼干都过期了怕她心疼,我还是带着了@喵安安_▼他们比想象中更爱你 16 临走之前爸妈给我塞了一大袋核桃每一个都已经夹好了@周嘉人▼家再远爱都在身边从未让你们骄傲你们却始终待我如宝  17 在外很少能吃到手工拽面回家之后妈妈身体不舒服还执意自己磨面粉教我怎么做@Wa玖月▼只有她这样担心你甚至忘了她自己 18 装不下还要硬装想把整个家装进去@NaNa酱strawberry▼你喜欢吃的你爱喝的都像小时候一样给你留着呢 19 我爱吃山上的小樱桃和小草莓姥姥在它们最红的时候天天去给我摘然后一个一个洗干净放冰箱冻上等我放假回来就能吃到@吴百变-▼这是我吃过最好吃而且用钱买不到的宝贝 20 爸妈来找我过节回家之前妈妈准备了很多好吃的冻在冰箱还把菜板贴好了小标签一边切肉,一边切肉@Jessie_JM▼父母在哪里,家就在哪里你在哪里,牵挂就在哪里 21 昨天跟妈说,我今天要回去老妈说让我再待一天,今天给我做锅包肉,给我炖鸡。我就没走!今天晚饭时我说明天回去老妈又说明天给我烙饼吃!让我再待一天!老妈已经各种理由留了我4天了!其实我并不是很想吃,可是我就是舍不得,妈妈以为我是为了吃她做的饭,其实我就是还想陪陪她。@大女人嫌你美世间的爱,唯有父母之爱指向别离。就像龙应台在《目送》里说的:“我慢慢地、慢慢地了解到,所谓父女母子一场,只不过意味着,你和他的缘分就是今生今世不断地目送他的背影渐行渐远。你站在小路的这一端,看着他逐渐消失在小路转弯的地方,而且,他用背影告诉你:不必追。 ”父母的确不必追,子女却要慢点走、多回头。等你拖着重重的行李箱,走到外面的世界,也许必须去做一个坚强独立的大人,应对世界的风霜雨雪。但是打开行李箱,尝一口家乡的味道,心里就像是有了依靠:在远方的家里,永远有人牵挂着你,担心着你,爱着你。总有一顿饭,让你吃得泪流满面。这顿饭里,包含着太多我们无以为报的爱。树欲静而风不止,子欲养而亲不待,不要让父母的等待熬成遗憾,不要让自己的孝心变成后悔。当我们还有时间、还有机会的时候,常回家看看。父母在,人生尚有来处。父母去,人生只剩归途。
休闲 4 0 2689天前
admin
6949
      Win10各版本号如何区分?Win10操作系统发布差不多有两年了,到目前为止,总共有四个版本,相信很多用户都不懂如何区分这几个版本,别着急,今天小编将给大家普及Win10各个版本号的相关知识,让大家轻松辨别Win10版本号!Win10各版本号如何区分?教你轻松辨别!  Win10四大版本如下:  1、Win10 RTM版,即首个正式版:  开发代号:Threshold Release 1,简称th1,版本号1507(在我印象中这个版本号,并未在发布的时候使用过,是用户根据微软后面版本发布习惯给这个版本取的名字,1507表示2015年7月发布的版本,下同),操作系统内部版本号:build 10240。  2、Win10首个重大更新:  开发代号:Threshold Release 2,简称th2,版本号1511,操作系统内部版本号:build 10586。从这个版本起,每个版本都按发布年月确定一个版本号。  3、Win10一周年更新(Windows 10 Anniversary Update):  开发代号:Red Stone 1(红石1),简称rs1,版本号1607,操作系统内部版本号:build 14393。前两个版本好像都没有正式的发行名称,从这一版开始,每个版本正式发行的时候,都会取一个名字,这个版本发布时间刚好是Win10正式版发布一周年的时间,所以取名“一周年更新”。  4、Win10创意者更新(Creators Update):  开发代号:Red Stone 2(红石2),简称rs2,版本号1703,操作系统内部版本号:build 15063。从这个版本起,微软确认,每年的两次重大更新分别安排在三月和九月,所以基本可以确定,下一个版本号是1709,而版本名称已经在四月的//build 2017开发者大会上确定:秋季创意者更新(Fall Creators Update)。  总结:  以上的版本,都叫正式版。每个正式版,还会有许多小版本的安全累积补丁更新,当前的Win10最新正式版的完整版本号就是Windows 10.0.15063.413。  除了正式版,Win10还有一个内部版本计划(Insider Program),是用于测试Win10即将发布的各种新功能,新功能稳定了,就集成在正式版里面发布。这种版本一般会在正式版发布一段时间后开启测试,一般一星期推送一次更新。  既然是测试版,当然会有很多不稳定性,包括各种蓝屏、死机、卡顿,应用闪退等,所以微软是不推荐在主力机上安装测试版本的。而且安装这种版本是需要申请的,虽然门槛很低,只要一个邮箱验证登录,然后加入“Windows预览体验计划”就可以了。遇到问题,最好的办法,就是去反馈中心(Feedback)反馈,有好的创意或建议,也可以去那里提,只要你的想法好,支持你的人多,你的建议就有可能被微软采纳。  要是你在主力机主安装预览版本,碰到各种问题又骂微软,或者看到新版本推送,吐槽“又在推送了”,这样是会被大神BS的。折腾预览版,是很多人的乐趣。  PS:查看你的电脑当前运行的版本方法:  点开开始菜单,在英文状态下输入winver回车确认,就会打开“关于Windows”窗口,里面会显示各种版本信息。   关于Win10各个版本号的知识就介绍到这里了,相信大家对于Win10版本号有更深一步的了解了吧?再也不用向大神求教现在最新版本号是多少等问题了!
维护 3 0 2690天前
admin
6647
原文转自:https://bbs.pediy.com/thread-221236.htm  作者:mrMORE Windows操作系统作为PC上最普及的操作系统,面向的用户各种各样,因此在版本升级时,对比其它操作系统,兼容性都要做得好,不需要用户费神DIY处理一些BUG。64位windows上市后大多以前32位的程序依旧正常地运行,当然这里主要指用户态程序。那64位windows是如何支持32位程序运行的呢?之前在看《windows核心编程》一书时只知道这个机制的名字叫wow64,但是具体如何实现的一无所知。为此我上网查阅资料,结果相关文章都讲得很笼统,包括Microsoft官方文档也是从很上层架构上进行了介绍,对于搞逆向的人来说,只了解架构不看代码怎么能忍,windows就在手边,何不亲自研究窥探一把庐山面目呢?说搞就搞,从代码的角度看一下这个wow64的大概。这里插一句,其实在着手了解wow64机制前,是另外一个问题先引起了我的好奇:64位CPU比32位CPU除了每个寄存器宽度多了32bit,还多了几个通用寄存器:R8, R9, R10, R11, R12, R13, R14, R15,那32位程序在win64上运行时这些新加的寄存器就没用了吗?这个问题最后也会得到解决。首先,先从宏观分析一下,32位程序的运行需要软硬件两个大方面的支持:1)硬件上,CPU的解码模式需要是32位模式。64位CPU(我只熟悉INTEL的)是通过GDT表中CS段所对应的表项中L标志位来确定当前解码模式的。这里不展开描述GDT表与CPU运行模式的关系,感兴趣的可以参看 http://www.secbox.cn/hacker/program/9875.html2)软件上,操作系统需要提供32位的用户态运行时环境(C库,WINDOWS API)对32位程序支持,其次因为win64内核是64位模式的,所以32位运行时环境在与64位内核交互时需要有状态转换。当然另外肯定还有大量其它的兼容32位软件所需要实现的功能,比如资源管理,句柄管理,结构化错误管理等等,这些属于细节就不进行研究了,我这里先看一个大体。好了,接下来针对上面的分析进行探索。关于32位运行时环境这点,可以在c:/windows/syswow64中发现许多和c:/windows/system32下同名的动态链接库,如kernel32.dll, ntdll.dll, msvcrt.dll, ws2_32.dll等,其实这些都是32位的版本。像wow64名字所传达的含义一样,syswow64文件夹下的这些库相当于在64位windows中构建了一个32位windows子系统环境,我们32位的程序能正常在win64上运行正是靠这个子环境负责与64位环境进行了交互和兼容,所以需要重点探究下这个32位子环境是如何与win64环境交互的。我这里用到的工具是 PCHunter 与调试器 MDebug,静态分析工具 IDA。了解 windows 的读者都知道 ntdll.dll 是用户态与内核态交互的桥梁,所以我选择从 ntdll.dll 入手,选择了逻辑简单的 NtAllocateVirtualMemory 函数。首先看一下原生32位操作系统里这个函数是什么样的。我手头有个 win8 32bit 版本,利用 MDebug 直接转到 NtAllocateVirtualMemory 函数查看反汇编,可以看到,在设置好调用号 0x19B 之后直接就使用 sysenter 进行了系统调用,中间没有其它操作,下面是相应的反汇编代码:NtAllocateVirtualMemory: 7778F048 mov eax, 0x19B 7778F04D call sub_7778F055(7778F055) 7778F052 ret 0x18 sub_7778F055: 7778F055 mov edx, esp 7778F057 sysenter 7778F059 ret看完原生32位操作系统里的样子,win64 中运行一个 32 位程序时它的进程空间里的NtAllocateVirtualMemory 是一番什么情景呢?我手头有 win7 64bit 版,运行的一个32bit程序进行调试,可以看到 NtAllocateVirtualMemory 的形式如下:NtAllocateVirtualMemory: 77C8FAD0 mov eax,0x15 77C8FAD5 xor ecx,ecx 77C8FAD7 lea edx,[esp+0x4] 77C8FADB call dword ptr fs:[000000C0] 77C8FAE2 add esp,4 77C8FAE5 ret 0x18OK,区别很明显,wow64中的 ntdll.dll 与原生32位 windows 中的 ntdll.dll 有了变动,它不再是与内核交互的最后一个用户态模块,而是call 进了fs:[C0]处的函数,隐约感觉这里就是打开wow64秘密的入口。fs:[C0] 是什么呢?Windows操作系统中,fs寄存器用于记录线程环境块TEB,根据TEB结构体定义可以看出0xC0偏移处的定义为:PVOID WOW32Reserved; // 0C0其实在wow64之前还有wow32机制,用于兼容16位程序在32位windows上运行,与wow64异曲同工。所以 windows 系统在 wow64 中直接也拿这个保留位置用于进行32位64位环境切换的跳板。单步跟进,发现fs:[C0]处只有一行代码:752B2320 jmp 0033:752B271E这里是一个长跳转,目的地址是内存752B271E处,但是MDebug调试器显示752B271E处于未知模块。这时需要借助PCHunter,通过PcHunter发现该地址其实位于一个叫wow64cpu.dll的模块中,值得注意的一点是,该模块来自 system32 而非syswow64 目录,是64位的文件模块,也就是说,wow64下32位程序的进程空间内同时加载了32位与64位的可执行文件模块!在这个32位程序的进程空间里一共有4个来自SYSTEM32 目录64位的“客人”:终于,这里有了真正的64位 ntdll.dll 的出现。所以很容易可以推断,wow64.dll, wow64win.dll, wow64cpu.dll 组成了环境转换模块,而最终依然是ntdll.dll 负责与内核交互,wow64中这4个模块在默默地在后台支持着32位程序的运行。上面说到这里经历了一个长跳转,段寄存器由0x23变换为0x33,在win64中,0x23和0x33所对应的GDT表项中CPU的模式分别为32位与64位。自此,CPU解码模式由32位切换为64位。当然,故事还没结束。不过由于调试器是32位,无法准确捕获接下来发生的事情,单步跟进也没用了,我们转为使用IDA静态分析。找到 752B271E 所对应的 wow64cpu.dll 中的位置:00000000752B271E mov r8d,[esp] //取出返回地址 00000000752B2723 mov [r13+0xBC],r8d //保存返回地址 00000000752B272A mov [r13+0xC8],esp //保存32位环境堆栈指针 00000000752B2731 mov rsp,[r12+0x1480] //切换至64位环境堆栈 00000000752B2739 and qword ptr [r12+0x1480],0x0 00000000752B2742 mov r11d,edx 00000000752B2745 jmp qword ptr [r15+rcx*8]第一句读取[esp]的值其实是把返回地址取出,接着保存到了r13所指向的地方,同时还保存了esp,然后重新赋值了rsp。看了这一小段,我们基本可以猜测到,在wow64中那个幕后的64位环境里其实是有自己的堆栈和执行上下文的,在CPU由32位切换到64位后,堆栈也相应切换。好了,下面要搞最后一句跳向了哪里,也就是[r15+rcx*8]的值,我们上面考察的 NtAllocateVirtualMemory 有 xor ecx, ecx 的操作,所以到这里时rcx = 0,所以就我们考察的例子而言,最后就是跳转到了[r15]。那,r15的值是多少?这是有点棘手的问题。Wow64中32位程序只能由32位调试器调试,但是32位调试器下又无法获得64位模式下才可见的r15的值,怎么办?我这里使用shellcode的方式,利用32位MDebug调试shellcode的功能调试精心准备的一段shellcode,这段shellcode的作用独特而简单:让CPU切换到64位模式下“潇洒走一回”,将R8 ~R15的值记录到堆栈中,接着切换回32位模式。shellcode的二进制为:\x6A\x33\xE8\x00\x00\x00\x00\x83\x04\x24\x05\xCB\x48\xB8\x88\x77\x66\x55\x44\x33\x22\x11\x50\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x50\xE8\x00\x00\x00\x00\xC7\x44\x24\x04\x23\x00\x00\x00\x83\x04\x24\x0D\xCB它的反汇编如下:/*开始时CPU处于32位模式*/ Push 0x33 // cs = 0x33 Call L1 L1: add [esp], 5 retf // far ret,切换CPU状态 /*此时CPU处于64位模式*/ mov rax, 1122334455667788h //将r8~r15用特殊值与周边数据隔开,方便查看 push rax push r8 push r9 push r10 push r11 push r12 push r13 push r14 push r15 push rax Call L2: L2: mov [esp + 4], 0x23 // cs = 0x23 add [esp], 0xd retf虽然32位调试器无法对64位代码运行时下断,但是可以在切换回32位模式后的地方下断点。所以在这段代码后下一个断,运行代码。执行完毕后,查看一下堆栈上的收获: 地址 内容 0018FEA0 1122334455667788 0018FEA8 00000000752B2450 r15 0018FEB0 000000000008EC80 r14 0018FEB8 000000000008FD20 r13 0018FEC0 000000007EFDB000 r12 0018FEC8 0000000000000246 r11 0018FED0 0000000000000000 r10 0018FED8 0000000077C8FAFA r9 0018FEE0 000000000000002B r8 0018FEE8 1122334455667788 Bingo!我们成功获得到了32位程序运行环境下R8~R15的值,根据R15的值定位出它同样位于wow64cpu.dll文件模块内,根据R15的值 找到wow64cpu.dll中相应的位置,发现是指向了一堆函数指针:.text:0000000078B62450 dq offset TurboDispatchJumpAddressEnd .text:0000000078B62458 dq offset sub_78B62DBA .text:0000000078B62460 dq offset sub_78B62BCE .text:0000000078B62468 dq offset sub_78B62D6A //后面还有很多函数指针,此处省略其实在第一次打开wow64cpu.dll寻找752B271E位置时,就可以看到它附近有一个名为CpuSimulate的函数,里面有这样的操作:.text:0000000078B625F9 mov r12, gs:30h .text:0000000078B62602 lea r15, off_78B62450可以看到r15是指向了偏移78B62450处,对应动态加载后就是752B2450。所以这也印证了我们的实验结果。另外还可以看到的一点是r12指向了64位下的TEB(64位下gs段寄存器用于记录TEB结构)。所以很显然,[r15]是指向了TurboDispatchJumpAddressEnd处,就是上文jmp qword ptr [r15+rcx*8]所要跳转到的地方(因为ecx = 0),看一下它的代码:TurboDispatchJumpAddressEnd: .text:0000000078B62749 mov [r13+0A4h], esi .text:0000000078B62750 mov [r13+0A0h], edi .text:0000000078B62757 mov [r13+0A8h], ebx .text:0000000078B6275E mov [r13+0B8h], ebp //保存32位环境下的寄存器 .text:0000000078B62765 pushfq .text:0000000078B62766 pop rbx .text:0000000078B62767 mov [r13+0C4h], ebx //保存32位环境的eflags .text:0000000078B6276E mov ecx, eax //调用号 .text:0000000078B62770 call cs:Wow64SystemServiceEx //继续完成未尽竟的事业 .text:0000000078B62776 mov [r13+0B4h], eax .text:0000000078B6277D jmp loc_78B62611上面的代码最后跳转到78B62611,loc_78B62611的代码如下:text:0000000078B62611 loc_78B62611: .text:0000000078B62611 and dword ptr [r13+2D0h], 1 .text:0000000078B62619 jz loc_78B626CE .text:0000000078B6261F movaps xmm0, xmmword ptr [r13+170h] .text:0000000078B62627 movaps xmm1, xmmword ptr [r13+180h] .text:0000000078B6262F movaps xmm2, xmmword ptr [r13+190h] .text:0000000078B62637 movaps xmm3, xmmword ptr [r13+1A0h] .text:0000000078B6263F movaps xmm4, xmmword ptr [r13+1B0h] .text:0000000078B62647 movaps xmm5, xmmword ptr [r13+1C0h] .text:0000000078B6264F mov ecx, [r13+0B0h] .text:0000000078B62656 mov edx, [r13+0ACh] .text:0000000078B6265D and dword ptr [r13+2D0h], 0FFFFFFFEh .text:0000000078B62665 mov edi, [r13+0A0h] .text:0000000078B6266C mov esi, [r13+0A4h] .text:0000000078B62673 mov ebx, [r13+0A8h] .text:0000000078B6267A mov ebp, [r13+0B8h] .text:0000000078B62681 mov eax, [r13+0B4h] //恢复32位环境寄存器 .text:0000000078B62688 mov [r12+1480h], rsp //保存64位环境堆栈指针 .text:0000000078B62690 mov [rsp+0B8h+var_B0], 23h .text:0000000078B62697 mov [rsp+0B8h+var_98], 2Bh .text:0000000078B6269E mov r8d, [r13+0C4h] //之前保存的32位环境eflags .text:0000000078B626A5 and dword ptr [r13+0C4h], 0FFFFFEFFh .text:0000000078B626B0 mov [rsp+0B8h+var_A8], r8d .text:0000000078B626B5 mov r8d, [r13+0C8h] .text:0000000078B626BC mov [rsp+0B8h+var_A0], r8 .text:0000000078B626C1 mov r8d, [r13+0BCh] .text:0000000078B626C8 mov [rsp+0B8h+var_B8], r8 .text:0000000078B626CC iretq //排好堆栈,返回至32位模式返回地址处可以看到,在 TurboDispatchJumpAddressEnd 代码片段中,调用了一个外部函Wow64SystemServiceEx,由这个函数再继续把下面的事情做完,最终调用64位的 ntdll.dll的 NtAllocateVirtualMemory 来完成整个操作。TurboDispatchJumpAddressEnd 最后跳转至78B62611,将CPU主要寄存器值恢复至之前保存好的32位环境中的值,同时在堆栈中排布好返回地址,cs段寄存器值,eflag值,执行iretq,返回至32位环境中,在我们的例子中,即返回到 NtAllocateVirtualMemory 中 call  dword ptr fs:[C0] 的下一句,看起来像真的执行了一个普通函数一样。上面讲到跳转的函数指针表是根据r15+rcx*8来得到的,在32位进程空间的那个ntdll.dll里面 call  dword ptr fs:[C0] 前都有对ecx的赋值,我们可以推测在wow64中,系统调用被分成多类,类别号存在于rcx中,根据rcx的值来进行不同类别的模拟转换。Wow64SystemServiceEx 做的事情就暂时不详细研究了,感兴趣的可以细细钻研。对这次简单的wow64之旅做个小总结:1) windows/syswow64目录下的大量DLL库与SYSTEM32目录下的wow64.dll, wow64cpu.dll, wow64win.dll, ntdll.dll 支撑着wow64机制。2) Wow64下32位进程中实际有32位和64位两个逻辑子空间,每个子空间都 有各自的数据结构、堆栈,64位子空间负责与操作系统内核交互:32位用户态模式  <--------->  64位用户态模式  <------------------> 64位内核3)Wow64模式下,那些不可见的寄存器并不都是闲置不用的,在切换到64位环境后全部启用,和正常64位程序无差别。且经过分析可以知道有确切作用的寄存器有:R12: 指向64位环境的TEB结构体 R13:指向保存32位环境CPU的状态的位置R15: 指向跳转函数指针列表的起始上面是针对win7下做的一个wow64机制小探索,我也简单看了下在win8和win10下的wow64过程,在反汇编代码上有些小不同,但是逻辑原理是完全相同的,感兴趣的读者可以搞一把。
开发 5 0 2697天前
admin
5067
原文转载自:http://mp.weixin.qq.com/s/_-QDjvNv44Esn9O0EChh4A“不忘初心,方得始终。”只有不忘记自己最初的想法,才能有始有终地去完成自己的梦想。“初心”是什么?是孔子“居之不倦,行之以忠”的为政之道;包拯“清心为治本,直道是身谋”的为官箴言;是毛泽东“埋骨何须桑梓地,人生无处不青山”的豪情壮志;是周恩来“为中华之崛起而读书”的宏大理想。不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。真正重要的不是生命里的岁月,而是岁月中的生活。流光容易把人抛,红了樱桃,绿了芭蕉。曾经莫失莫忘,后来梦里花落。纳兰性德说,“人生若只如初见”。在这个时代,初心常常被我们遗忘,“我们已经走得太远,以至于忘记了为什么出发”。因为忘记了初心,我们已经不知道为什么来,要到哪里去。因为忘记了初心,我们走得十分茫然,多了许多柴米油盐的奔波,少了许多仰望星空的浪漫。因为忘记了初心,时光荏苒之后,我们会经常听到人们的忏悔:假如当初我不随意放弃,要是我愿意刻苦,要是我有恒心和毅力,一定不会是眼前的样子。席慕蓉说:我一直相信,生命的本相,不在表层,而是在极深极深的内里。这里的“内里”即为“初心”,它不常显露,很难用语言文字去清楚形容,只能偶尔透过直觉去感知其存在,但在遇到选择之时,在不断地衡量、判断与取舍之时,往往能感知其存在。林清玄说:回到最单纯的初心,在最空的地方安坐,让世界的吵闹去喧嚣它们自己吧!让湖光山色去清秀它们自己吧!让人群从远处走开或者自身边擦过吧!我们只愿心怀清欢,以清净心看世界,以欢喜心过生活,以平常心生情味,以柔软心除挂碍。白岩松说:在墨西哥,有一个离我们很远却又很近的寓言。 一群人急匆匆地赶路,突然,一个人停了下来。旁边的人很奇怪:为什么不走了? 停下的人一笑:走得太快,灵魂落在了后面,我要等等它。我们都走得太快。然而,谁又打算停下来等一等呢?如果走得太远,会不会忘了当初为什么出发?人生只有一次,生命无法重来,要记得自己的初心。经常回头望一下自己的来路,回忆起当初为什么启程。经常纯净自己的内心,给自己一双澄澈的眼睛。不忘初心,才会找对人生的方向,才会坚定我们的追求,抵达自己的初衷。一窗暖阳,一念心安,初心仍在,岁月无恙。闲看花开,静待花落,冷暖自知,干净如始。我希望,今后能以一朵花的姿态行走世间,穿越季节的轮回,在无声中不颓废,不失色,花开成景,花落成诗。回忆中,总有一些瞬间,能温暖整个远去的曾经。世界上唯一的你,就算没有人懂得欣赏,也要好好爱自己。时间很短,天涯很远。今后的一山一水,一朝一夕,安静的去走完。前尘过往终是浮云,最应该珍惜的便是当下。任岁月流逝,你我初心终不改。淡然安逸,心静如水,肆意而恬淡,这才应该是你的生活。-END-
休闲 5 0 2702天前
admin
6162
原文地址:http://k.sina.cn/article_1708729084_65d922fc001002e56.html?wm=3049_0016&from=qudao      2017年9月10日-13日,由工业和信息化部、科技部和江苏省人民政府主办的世界物联网博览会在无锡举行。博览会开幕首日的高峰论坛上,来自政府、企业的互联网、物联网专家学者围绕物联网主题,从不同角度发表富有创见的精彩演讲,分享对各自领域物联网发展的独到思考,带来一场智慧的碰撞和思想的盛宴。压轴演讲嘉宾阿里巴巴集团董事局主席马云先生的演讲更是颇具深意。        两天前,恰逢阿里巴巴集团成立18周年庆典。18年前,马云创办阿里巴巴,“今天的阿里巴巴不是今天做成的,是18年以前的决定做成的。而18年以后的你、20年以后的你,不是20年以后决定的,而是今天的思考、今天的决定。”马云以惯有的演讲风格挥洒他对物联网和成功学的思考。2009年开始,江苏就进行了物联网的探索,那时候国家,将今天的物联网叫做国家传感网。也是2009年,阿里巴巴启动了阿里云计算,那时候谁也说不出未来云计算到底是怎么一个样子,但是我们相信这是一个未来、这是一个趋势。双方都坚持了八年时间,才有了今天。       马云先生将江苏省对物联网的探索与阿里巴巴的探索进行了分析:江苏省开始探索的时候,我相信大家只是觉得这是一个概念,阿里巴巴在探索云计算的时候,也认为是一个概念,今天的概念越来越多,包括云计算、大数据、智能物流、IOT在内各种各样的说法,其实说明一个问题,人类正在往一个共同的方向去走。就像上一个世纪,有的人讲汽车很重要、有的人说造路很重要、有的人说石油很重要,其实大家都在做一个方向,这就是一个能源时代的到来,而今天的人类将真正开始进入到数据时代。在马云的思想宇宙里,数据化技术足以和社会化生产比肩:人类未来的大数据发展,离不开三个主要的要素,就是互联网、大计算以及云数据。数据将成为最重要的生产资料,大数据涵盖着两个关键,“大”不是“多”的意思,“大”是大计算的意思,大计算加云数据,这才是我们所认为的大数据。首先数据将成为最重要的生产资料,如果说第一次技术革命,煤是主要的生产资料、煤是主要的动能,第二次技术革命,是石油、电,这次技术革命,以创新驱动,数据将成为最重要的生产资料第三次技术革命将以创新驱动,数据将成为最重要的生产资料。 互联网本身是一种生产关系,互联网不是互联网公司的互联网,互联网是全社会的互联网。云计算将成为一种强大的生产力。      的确,当技术的发展不断向外部发展的时候,数据化趋势正在走向我们的内心:过去的两百年,由于科技的发展,我们对外部的世界越了解越多,我们走向外太空,探索月亮、探索火星,不断在向外探索,但是人类对自我的了解越来越少,未来的一两百年,我们在发掘人类的内心世界,这在生命科学方面将会有重大的突破。人活到120岁、150岁,并不是笑谈和奢想,因为人将了解自己越来越多。        我们对于未来的未知远远大于已知,就像阿里巴巴不是今天做成的,是18年以前我们相信有这一天才会做成的。我们今天同样相信未来的世界会是这个样子,并且为之去努力。       马云相信,今天能够定义清楚的东西都不是未来,今天我们怎么想象未来,在他认为都是幼稚的,尽管18年以前,我们知道互联网会发展,知道电子商务会发展,但是我们没有想象到电子商务、互联网18年以后会发展成这个样子。人类一百年以前发现电的时候,认为电就是用于电灯泡的,并没有想到今天还有电饭煲、空调机,今天我们对于数据的理解,所谓的数据垄断,跟二十年以后的数据相比,跟万物相连以后的数据相比,比不上沧海一粟。所以我们今天要思考的是如何面对未来,我们要铺设一个方向,如何坚持,并且不断的去完善。今天的思想碰撞极具意义,甚至是里程碑式的。       时代的变迁在18年前被他和他的团队亲手开拓,18年后的未来,也正在这位传奇人物的预言中慢慢走来:身处IT时代,人类已经从IT走向DT,IT是Information Technology,DT是Data technology,这不是字的区别,也不是技术的区别,而是思想观念的区别,IT是让自己做得越来越强,而DT必须学会共享,必须学会普惠,必须让别人强大起来,你才会强大起来。而整个世界的趋势就走向了普惠、共享和可持续。  
资讯 15 0 2715天前
admin
5741
原文地址:https://jingyan.baidu.com/article/73c3ce28c97bb6e50243d96e.html文章所需使用软件:Mkvmerge GUI    FLVExtract 第一步:提取FLV文件视频流、音频流 打开FLVExtract,出现下面的窗口: 然后将需要处理的FLV文件拖入FLVExtract窗口内,视文件大小等待一会儿,出现下如下窗口: 单击OK,关闭软件,然后你会发现FLV视频文件目录下生成了视频流文件(一般为.264文件、AVI文件等),音频流文件(一般为AAC文件、MP3文件等),以及脚本流文件(TXT文件)这三个文件: 到此,提取FLV文件视频流、音频流这一步完成。 第二步:合并视频流、音频流文件,封装成MKV格式 打开MKVMerge GUI,将刚刚生成的视频流以及音频流文件添加进去(脚本流文件并非必要,一般可以删除): 根据第一步中得到的一些信息设置格式细节选项: 开始混流(时间一般来说在2分钟以内): 混流完成,耗时仅2秒,单击确定: 关闭软件,发现FLV文件目录下已经生成了同名的MKV格式文件(画质及清晰度没有改变,但却缩小了源FLV文件的大小哦): 注意事项 对于F4V格式视频文件,HLV格式视频文件等非FLV格式视频文件的处理,大家可以直接重命名、修改扩展名为FLV(不必担心损坏视频文件)。  
维护 5 0 2725天前
admin
6181
名称:FLV文件内部音频提取 ( FLVExtract ) 大小:0.5 MB 语言:中文 授权:免费软件 更新:2017-09-03 官网:未知 平台:Windows介绍:  FLV Extract是一款可快速从Flv格式文件中提取音频和视频的小工具,和其它软件不同的是,FLV Extract软件在提取的时候不需要对文件进行解码和编码,瞬间就能将视频和音频文件提取出来,并且可以保留原始文件的音质效果,FLV Extract还有如下优点:  # 文件小巧(不到50K),无需安装,且是免费开源软件;  # 简洁的界面以及易操作性(只需将flv文件拖拽到软件主界面即可);  # 音频直接提取为mp3格式,视频直接提取为avi格式(支持H.263/FLV1 和 VP6/VP6F)      注意:软件运行环境需要Microsoft .Net 2.0组件,Win7及更老系统需要自行安装运行截图:下载地址:点击下载FLV Extract
工具 4 0 2725天前
admin
5984
原文地址:http://database.51cto.com/art/201708/548354.htm作者:古的白人生大起大落落落落落落,实在是太刺激了,下面这真是一个悲伤的故事。那年公司 ERP 系统刚进行升级。因为公司陆续上了 MES 和 PDM 系统。为了加快整个公司信息化平台的统一,请了个第三方公司来做中间接口。然后故事开始了。某一个晚上,第三方人员问我要 ERP 的 SA 密码。我很警惕:“你要干嘛?”“我测试一下中间表。”“有没有写表的操作?”“没有,只有读表的操作。”于是我放心的给了 SA 密码。给了 VPN 权限通道。放她进来了。十分钟后…..她带着哭腔打电话来(是的,对方做测试的是个 93 年的萌妹子。)“吴哥哥,服务器中毒了。。。。”我当时还在逛果壳呢,一听她说我服务器中毒了,我表示无比淡定。还以大哥的经验教训了一顿她。“叫你不要往我服务器传插件嘛,这次帮你解决一下,下次不准了哟。”我认为是小 case 呢,不就中毒了嘛,系统往回滚一天就好了。然后悲剧的事情就出现了,远程进不去,于是我就去机房本地登录,居然也进不去。我不死心,强制重启,居然还是进不去。我的服务器系统就这样崩了。。。好在那几天在做开发,系统没有启用,于是我和我的老板汇报了这个情况:“老大,我们服务器系统崩了。”“哦,那就搞好它让它别崩。” 果然是霸道总裁啊。当时数据和应用服务器我都是分开跑的,所以应用服务器奔溃了,我觉得也没多大事,就重新做系统吧。于是我重新做了个系统,然后喊萌妹子上来搭平台。“小刘啊,你可害惨我了,一个下午给你重做服务器系统了,我基础环境都配置好了,你上来搭平台吧。”萌妹子那是无比的歉意啊,又是答应请我吃饭又是答应请我看电影的。我都想系统再崩溃一次了。按理说这样应该是没问题了,就在我走出机房,在外面抽了根烟,45 度仰望了一下天空,联想了一下和萌妹子点个 9 分熟的牛排,在喝一口二锅头这样浪漫的晚餐的时候。电话来了。来电话的是萌妹子的老板。“小吴,我想找一下 information.db 和 mfmedia.db 这两个总表没找到,你给我找一下。”我都蒙了,从来没人问过我这样的问题,难道她老板不是 IT 行业的。“数据库文件都在目录树里啊,自己去找啊。”“没有。”于是我登上服务器一看,我傻了。所有的表都空了,所有的表都静静的躺在那,但是里面都空了。。。不可能啊,我数据库是放在另外一台服务器上的,怎么可能会没有了。于是我问萌妹子:“XXX,你到底做了什么操作啊,为毛我数据库都没了。”萌妹子说:“我啥也没干啊,只是按照步骤一路点 YES。”我才想起来,在第一次配置基础环境的时候,建账套会提示是否初始环境,如果点是了,数据库就会被初始化,然后这位萌妹子傻傻的点了是。“你知道不知道你干了什么,公司 06 年到现在所有的数据,财务的,供应链的,进销存的全部都在这台服务器里,200 多个 G 数据,因为你一个是,全没了。”萌妹子也吓蒙了,话都说不出来了。没办法,我再给我老板打电话。“老板,有个好消息,有个坏消息。”“直接说坏的。” 我就喜欢我们老板这么直接。“恩。。恩。。那个。。就是那个。ERP 的数据没了。”“哦,那就找回来。” 老板还是那么的霸气。我特么都要爱上他了。“老板,我想你没明白这个的严重性。ERP 数据没了,从 06 年开始的都没了,这意味着就算找回来,整理所有的表,排错也需要 3 天左右时间,到时候所有的生产都要暂时停止。如果找不回来,我们可能就要倒闭了。”我忽然有种掌握天下苍生的感觉。。。对面沉默了 5 秒后,爆吼了一句:“吴 XX,你给我滚到我办公室来!!”中间和老板手握手谈心,被老板亲切慰问的细节跳过不表。当时公司高层对数据安全还没有那么重视,之前预算做的项目,我已经做了备份的计划书,一直没被审批下来,现在估计悔得肠子都清了。于是我开始漫长的数据恢复之旅。我之前已经做了个本地备份的计划,每天晚上会备份一次。我把希望都放在了它身上。等我把备份的数据库附件上去,发现时间居然都是两个星期之前的。而且还有一些新表都没有,我联系对方,对方告知研发人员两个星期前做测试的时候把备份计划关了。。。我心里万头草泥马奔腾而过。最后没有办法,把老服务器又翻了出来,翻出之前的老数据,开始转换。期间老板给我短信:“数据恢复进行的怎么样了呢。”“报告,正在稳步进行中,按照目前的状况,可恢复的可能性超过 90%。” 别问我 90% 怎么算出来的,我就是哄他才这样说的。“唉,真是心急呀,睡都睡不着。小吴呀,当初要是听你的,上了备份该多好呀。” 现在知道后悔了,哼哼。“老大别担心,我会搞定的。” 是的,作为一位负责的员工,我就是这么让老大心安。“恩,那就交给你了哦,熬夜少抽点烟哦。” 哎呀,瞬间觉得我老大萌萌哒有没有。这里花了我一个晚上加一个白天。数据转换好了,还有一些时间差的数据没法找到。于是通知各个部门,找单据,开始往里面补单子,一条一条的按照业务流程补进去。为了协同更方便,在会议室加设了几十台电脑集体办公。。。在大家一片怨声载道中,三天时间,终于把数据恢复了过来。三天内我没离开机房超过 10 米,吃喝拉撒都在机房,不对,拉撒不在。这件事情造成的后果:1. 大部分员工放假三天,我加班三天三夜。2. 本来很爱我的大部分员工因为单据事件,集体转为黑我恨我了。3. 公司立马批了我的计划,冷备,热备,异地容灾,全部上全了。4.我挥刀自宫,自己罚了自己,扣除了自己一个月工资。5.老板到现在还是在怀疑请的那家公司已经被我们竞争对手收买,是故意来破坏我们的。6.萌妹子拉黑了我。
维护 16 0 2727天前
admin
4672
原文转自:http://bbs.51cto.com/thread-1082542-1.html作者:imcxz时间快到了下午五点半,我盖好笔帽,浏览了一遍当天的笔记,打卡锁电脑,准备下班……来到公司已有将近三年的时间,当时我是处于公司IT人手不够情况下应聘进来的,第一年公司着手搬家,领导带着我参与了新机房建设、新办公区网络规划、机房搬迁等相关工作,我因此学到了很多知识。第一年下半部和第二年,我参与了多项完善、测试及上线工作,例如下一代防火墙、无线网络、oracle存储、ESXI升级、专线部署、备份、软硬件资产管理、相关文档的起草和撰写等。那是充满忙碌和激情的两年时间,我不断学习、进步、丰富自我的专业知识,虽然经常加班,虽然很累,但是乐在其中不知疲倦。经过了将近两年时间的忙碌和完善,公司的IT系统趋于巩固。由于各方面的原因吧,我们进入了一个平缓期,项目没有了,测试也没有了,每日局限于查看日志,小修小改,就像从顶楼一下滑落到了地下室,及其不适应,浑身发痒的感觉也越来越强烈。我不可避免的也开始了迷茫,一下不知道自己该做些什么,每日重复的工作让我毫无乐趣,虽然都是一些机械化的操作,但是脑子却变得越来越迟钝,越来于迷糊了。这样的情况持续了将近半年的时间,大家逐渐趋向于安逸的节奏,上班无非浏览新闻,广播网购打折信息,QQ打屁YY之类的无聊之事,逐渐的开始有了员工的离职,而让我顿悟的是几个老员工的离职,给了我警示——不能再这样下去了。我开始反省,才发现自己掌握的知识实在是少的可怜,涉及公司技术的方面,例如AD、exchange、lync、邮件网关、虚拟化、存储、防火墙等只是有了一个概面的了解,尤其对于自己主要负责的网络方面,基础理论的掌握实在是差的厉害,总结出来就是——我知道要这么做,但是不知道为什么要这么做。这让我失落、但立即想到的是行动。我开始重新复习原来了解的知识方面,从最基础的开始。按照自己的习惯,我延续了在学校的方法,一遍复习一遍做笔记,到目前为止,我重新学习了一遍lync、exchange、ESXI基础架构、CCNA、CCNP网络。重新学习的过程是枯燥无味的,但效果就是你能和现有的生产环境结合起来,触通旁类!例如acl方面,除了常规的配置,你可以了解基于时间的acl、自反acl等等。在学习的过程中,你会有经常性的顿悟,那样的感觉不可言表。我的一个同学嘲笑我沉迷于无前途的技术,我无法反驳,我只想做自己喜欢的事情,或者我可以跳槽、转行,而且有可能在其他领域能够赚取更多的金钱,但我觉得那还没有到时候,我从最初连LYNC都没听过的小菜鸟,到现在能够负责公司网络部分的转变;从最初的杂乱不精自以为是,到现在的系统分析冷静判断;这都是端正心态、不断积累的结果。(这只是个人态度,大家看看即可,不要因此放弃难得的机遇)我想起曾读过多遍的一部小说里面的话:“生命的精彩、幸福的喜悦不在于人努力后得到的结果,而在于创造结果的过程!”不要看不上Helpdesk,照样可以做的精彩;不要觉得微软傻瓜化,要精通非常困难;不要以为虚拟化缥缈,基础掌握并不复杂;不要把程序猿屌丝化,搞个后门让你瞪眼;不要把攻城狮当民工,键盘一敲让你网络全挂。学到的看到的越多,才发现自己知识的匮乏,处于一个安逸的时期,暂时的迷茫是正常的,最主要的还是要及时发现自己的问题,不断的去研究、学习、请教,丰富自我。因此我认为——暂时的安逸,是为将来的激情做准备!——谨以此文献给所有感觉自己安逸的午饭们!————2013年11月12日晚
休闲 1 0 2727天前
admin
5336
原文地址:http://weibo.com/ttarticle/p/show?id=2309351002704146441940550858&u=1668632407&m=4146441712461037&cu=1668632407写在前面前两天和几位技术大牛聊天,大家突然发现那些身边的优秀的技术人中,有很多人都拥有相同的路径和很多共同点。简单的说,技术大牛虽然凤毛麟角,但其实成为技术大牛也没有那么困难,就是“有技巧无捷径”。“有技巧”是说,任何一个领域的专家,只要精通该领域的已有知识就可以,只要你的学习能力够强、能够掌握一些经验技巧就一定能够办得到,不像很多岗位对于“创新”的要求,需要用已有的知识创造出未知的产品。“无捷径”是说水到渠成,你把该做的事情一件一件琢磨好,在每一件事情上多下点功夫,自然而然就会有“渠”。除了技术类岗位,很多岗位的要求也都一样,胜任力或者发展轨迹很清晰,看似不难,难得是有人可以沉得下心来细细打磨。就来说说技术大牛们通常不同阶段的注意力都在哪,也可以说是需要你沉下心来好好打磨的四个层次——第一个层次,专业领域内的技术精通。要作为一名技术领域的强人,必须要确保在某个技术方向上非常精通,技术的根基要扎得非常深,稳扎稳打,这是你的技术招牌。前两天朋友圈有人问:“面试时候是否会问设计模式相关的问题。”很多大牛表示很少问道,因为越是优秀的技术人员,注意力越是在一线技术上,越是关注在表面花哨的东西,越写不出牛逼的代码。所以第一个层次,需要沉得下心,深钻技术,细细打磨。第二个层次,有一定的技术广度。技术的深度和广度本来就是一个相辅相成的协同,有时候其实没有办法分出个先后。你会发现,很多技术大牛非常非常的博学,他们似乎都精力无限、兴趣广泛?没错,广度这个事情指的就是信息量,而信息量的获取往往跟精力和兴趣相关。 很多人会询问技术的深度和广度那个更重要,我觉得“吃透一样才是立身之本”,所以广度应该有,但是更多的时候“广度”要辅助“深度”。即时很多事情你并没有做过,但一定要清楚个二三,需要的时候可以立即钻进去。所以第二个层次,需要的是走出去的心境。第三个层次,潜入到行业中了解业务和流程。做得越多,你越会发现没有技术独立存在的场景,技术的存在是为了更好的服务于应用场景,不潜入到一个行业当中,不知晓行业的应用环境、组织流程、商业价值,就难以做出和业务无痕交融的产品。技术是把商业需求转换成产品的一个关键角色,因此第三个层次,需要的是了解技术以外的东西。第四个层次,了解社会心理学。做得更多,你会发现,你会从对技术的研究,变为对行业的研究,再变为对人性的研究。产品最终是为了满足人的需要才有价值,而产品研发本身也需要多人协作。社会心理学主要是研究人际关系。当然了,我觉得这个还是非常难的,一般做到二三层次就已经可以是技术大牛了。对CEO的要求可以这么苛刻。
休闲 6 0 2729天前

IP地址位置数据由纯真CZ88提供支持

桂公网安备 45010302000666号 桂ICP备14001770-3号
感谢景安网络提供数据空间
本站CDN由七牛云提供支持
网站已接入ipv6
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
如果某些内容侵犯了您的权益,请通过右侧按钮与我们联系
Your IP: 18.227.49.242 , 2025-02-19 06:58:56 , Processed in 4.17396 second(s).
Powered by HadSky 8.4.18
知道创宇云安全