我们是否滥用了判空呢? ---- 精华回答: 这是初、中级程序猿经常会遇到的问题。他们总喜欢在方法中返回null,因此,在调用这些方法时,也不得不去判空。...你要感知到这个情况,告诉调用方“嘿,哥们,你传个null给我做甚"。...这种情况下,null是个”看上去“合理的值,例如,我查询数据库,某个查询条件下,就是没有对应值,此时null算是表达了“空”的概念。...如果你养成习惯,都是这样写代码(返回空collections而不返回null),你调用自己写的方法时,就能大胆地忽略判空) 2、返回类型不是collections,又怎么办呢?
首先来讲光刻机技术不仅仅是欧洲独有的,光刻机需要几万个零件需要全球供应零部件,核心部件当然是欧洲和美国共同完成的,只不过荷兰ASML最终完成了整合,并且几乎达到...
作者: Lateautumn4lin 来源:云爬虫技术研究笔记 ---- 之前使用Python的环境一直是Python3.7.3的,一直使用的很正常,没有什么毛病,直到最近做一个图片下载器的时候发现了问题...advanced-usage.html#ssl-warnings InsecureRequestWarning) 这样就避免了我们使用https的去验证SSL证书,不过我这里的问题是使用的是...解决一下 Goole了一下,发现其实不止我一个人出现了这个问题,已经有老哥在Aiohttp的Issue里面提了相关的问题了,可以参考https://github.com/aio-libs/aiohttp...不过这个问题已经在Python3.7.4和3.8版本解决了。 ? 可惜我的环境之前是3.7.3 我们知道了问题的解决办法,我们再去看看为什么会有这个问题?...大家要是有什么关于Python这两个版本的疑问可以尽情提出来!
01、人工智能和机器学习人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,高到我自己都应聘不上,非常残酷。...不过,招聘信息上直接说了,“我们的程序员小伙伴都毕业于 211/985 学校”,就这一条,我就会被拒之门外。学历硬伤啊,所以应聘“人工智能和机器学习”这方面的岗位很难,扎心,谁叫咱不是学霸呢。...04、Web 开发用 Python 做 Web 开发的大型互联网公司我听说的不多,羊哥说豆瓣以前用的是 Python,现在也不用了。...06、最后以上观点都是我个人主观给出的,不一定正确哈,仅做参考。...如果说,有些读者学历一般,做程序员仅仅是为了糊口饭吃,那么我觉得可以把 Python 作为第二语言来学,不要当做主语言。搞点范围许可内的爬虫,自动化测试,我就觉得挺好的。
01、人工智能和机器学习 人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,高到我自己都应聘不上,非常残酷。...不过,招聘信息上直接说了,“我们的程序员小伙伴都毕业于 211/985 学校”,就这一条,我就会被拒之门外。学历硬伤啊,所以应聘“人工智能和机器学习”这方面的岗位很难,扎心,谁叫咱不是学霸呢。...04、Web 开发 用 Python 做 Web 开发的大型互联网公司我听说的不多,羊哥说豆瓣以前用的是 Python,现在也不用了。...06、最后 以上观点都是我个人主观给出的,不一定正确哈,仅做参考。...如果说,有些读者学历一般,做程序员仅仅是为了糊口饭吃,那么我觉得可以把 Python 作为第二语言来学,不要当做主语言。搞点范围许可内的爬虫,自动化测试,我就觉得挺好的。
本期“Python 为什么”栏目来聊聊 Python 为什么没有 main 函数? 在开始正题之前,先要来回答这两个问题:所谓的 “main 函数”是指什么?...main入口函数呢?...我每次看到这种不假思索的累赘代码,就觉得难受。为什么要写那行 if 语句呢?可能的话,应该拆分 main 函数,甚至不必封装成一个函数啊! 我个人总结出以下的经验: 打破惯性思维,写出地道的代码。...推荐阅读:Python 中 -m 的典型用法、原理解析与发展演变 不推荐写if __name__ == '__main__'。首先,如果只有一个文件的话,因为不存在导出的可能,不建议写。...小结:本文首先解释了什么是 main 入口函数,以及为什么某些语言会强制要求写 main 函数;接着,解释了为什么 Python 不需要写 main 函数;最后则是针对某些人存在的惯性误区,分享了我个人的四点编程经验
2018年初,突然发现,身边人一个个转身变成了比特币专家,区块链代言人,以太坊、分布式存储一直挂在嘴边,而我,一个做区块链的技术人员却成了区块链的“边缘派”…… 然而,作为区块链的“边缘派”,今天我想说为什么我不赞成炒币...,但是我执着于做好区块链的技术。...区块链职位需求 有一个人才缺口的公式,个人觉得很有意思: 人才的紧缺程度:区块链>人工智能>互联网金融>O2O 很多人都误以为区块链的门槛很高,但是我不得不跟你说,就像你对区块链和比特币的误解一样,对区块链的职位需求你也理解错了...区块链人才机遇 说到人才机遇,作为区块链的技术人员,告诉你们区块链技术人员真的不一定炒币,不是没有契机去炒币,只是对于我个人来说可能炒币倒不如踏踏实实的代码,搭建我的区块链框架。
转载 在Python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互。...使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详细的讲解这个模块(以windows平台为例子),当然我假设你们已经对windows下怎么写一个...但为什么不都用stdcall。... 5、处理C中的结构体类型 为什么把这个单独提出来说呢,因为这个是最麻烦也是最复杂的,在python里面申明一个类似c的结构体,要用到类,并且这个类必须继承自Structure。 ... = kernel32.WriteProcessMemory #获得WriteProcessMemory函数地址 TerminateProcess = kernel32.TerminateProcess
那么从第一步开始写吧 今天我们还是拿我们可爱的32位计算器做实验 :) (其他的我也没有) ①.查找窗口获得窗口句柄 HWND hWnd = FindWindow(TEXT("SciCalc"),...这是因为,我用的是2013 (我的天终于换成了2013),但是为什么这样写,因为我被坑了,不这样写不能操作....那么现在经过我讲解,知道为什么我们要定义4个 _emit了吗,因为这个要通过我们的手法,写入一个函数的地址,然后让CALL去调用....那么现在我们介绍下Jmp的作用 ②.Jmp的作用 Jmp的作用和上面一样,就是JMP标号,其实就是JMP 对标号取内容的值当做地址去执行 为什么这样做,因为我们写完我们的代码要让它回到以前执行的代码位置处...有的人可能会想,很简单,我用WriteprocessMemory把这两个值写入到这里不就完了. 那么现在可以写入,也是没问题的, 但是会出现两个问题.
大家好,又见面了,我是你们的朋友全栈君。...做64位程序dll注入时候出现 WriteProcessMemory的299错误 ,查找错误代码 解释为 “仅完成部分的 ReadProcessMemory 或 WriteProcessMemory...完全搞不清楚怎么回事, 因为调用了两次 WriteProcessMemory,第一次正常,第二次调用出错。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
360 成功绕过(图有点少,当时没存,火绒测试是用的同学的物理机,两台,还有一台没截图;360是虚拟机) 然后看到Askar大佬的文章,决定试试绕过Bitdenfender,先运行一下,说不定也过了呢(...的,这非常可疑,大概率是来检查我的行为的,很有可能是Hook我的API,这里看一下我的马用到了哪些API DWORD CeatRemoThread(DWORD pid) { HANDLE hThread...ZwCreateThreadEx 这里可以看到我的ZwCreateThreadEx是动态加载的,而且较为底层,先看看WriteProcessMemory,是否被钩住了 使用disasm WriteProcessMemory...找到这个API 跟进去看看,这里是比WriteProcessMemory更为底层的NtWriteVirtualMemory 跟进去看看!...我一开始以为是动态扫描出我的马,但我发现Bitdefender的反应很快,我想到卡巴斯基,马可以上线大概5秒,毕竟扫描也需要时间,但为什么这里一瞬间就挂了,我猜想是Bitdefender监控到了explorer
Python就是一种高级语言,跟它类似的语言有很多,都是高高在上的最顶层,比它们更高级的就是PPT和人与人的交流了。高级语言也有很多种,为什么今天要介绍Python呢?...我觉得它比较有用,不光码农用得上,作为事业单位财务人员的我哥也能用得上。...码农用Python可以做的事自然不必说了,可谓装逼撩妹无所不能啊,现在比较流行的人工智能、机器学习、神经网络算法这些领域也都把Python作为很重要的工具;那么我哥能用Python做什么呢?...不不,你不懂,这样会有一种创造出新事物的快感。Python最大的优势在于用的人很多,而且好多别人写好的代码都变成了大礼包,拿来就能用。...由于方便友好用户多,Python这门语言已经变得老少咸宜了,各种培训机构遍地开花,我儿子的编程课老师说等到九岁就可以上他们的Python课程了,我想了想,九岁可能有点晚。
开发部门不懂运维的实际业务逻辑,写出来的东西太烂不能用,我自己也做运维系统,6年运维工作经验,开发出来的第一版照样烂的不行,这还是懂的运维业务逻辑的,让开发人员来做,跑偏可能更多了,这就是为什么我见过很多公司自行开发运维平台...,想学个语言的话,请用Python,为什么呢?...首先,PHP是跟Python比的最多的,其实他俩根本就不用比,为什么呢?...而Python呢,是个综合语言,前后端都可以,单拿出来比Web,也一点不比PHP差,但为什么Web方向上PHP比Python要火?...Python之后,还是建议你学习下C++,毕竟相比Python这个动态语言来讲,C++的效率还是高很多的,但对新手来讲,不建议做为第一门语言开始学习,为什么呢?
还有一台没截图;360是虚拟机) [image.png] [BP%)8DKTNCE7AQSQ7R5$NMX.png] 然后看到Askar大佬的文章,决定试试绕过Bitdenfender,先运行一下,说不定也过了呢(....dll",而且是Bitdefender的,这非常可疑,大概率是来检查我的行为的,很有可能是Hook我的API,这里看一下我的马用到了哪些API DWORD CeatRemoThread(DWORD pid...ZwCreateThreadEx 这里可以看到我的ZwCreateThreadEx是动态加载的,而且较为底层,先看看WriteProcessMemory,是否被钩住了 使用disasm WriteProcessMemory...找到这个API [image.png] 跟进去看看,这里是比WriteProcessMemory更为底层的NtWriteVirtualMemory [image.png] 跟进去看看!...[image.png] 我一开始以为是动态扫描出我的马,但我发现Bitdefender的反应很快,我想到卡巴斯基,马可以上线大概5秒,毕竟扫描也需要时间,但为什么这里一瞬间就挂了,我猜想是Bitdefender
不能用来构建大型项目。 Cobalt Strike 不会将 BOF 链接到 libc。...这样做有几个优点。首先,新模块不会添加到 PEB,即不会显示为加载的模块。其次,加载的 dll 不必落地直接在内存中加载就行。...最后,我们绕过可能放置在 LoadLibrary 或 LdrLoadDll 上的任何钩子,它们可能用于检测阻止我们的注入。...我想出了以下内容,它接受文件路径的参数并将文件路径中的数据发送到我们的 BOF。...将之前的代码转换为与cobalt Attack 一起使用我最终得到了一个最小版本,它可以将一个dll 从内存迁移到一个远程进程。
在你还没学好走路的时候,不要老想着,将来我当上老板了,我是开宝马呢?还是开奔驰呢?要先学会骑自行车。。。 经常有人在群里问,运维人员需不需要学开发?需不需要学PYTHON?...开发部门不懂运维的实际业务逻辑,写出来的东西烂烂不能用,这活最后还得交给运维开发人员来做。...,想学个语言的话,请用PYTHON, 为什么呢?...首先,PHP是跟PYTHON比的最多的,其实他俩根本就不用比,为什么呢?...而PYTHON呢, 是个综合语言, 前后端都可以,单拿出来比WEB,也一点不比PHP差,但为什么WEB方向上PHP比PYTHON要火?
最近一直不务正,老打算用C#写个外挂出来。 这方面对C#来说是个弱项,但并不表示无法做到。 下面写个简单的例子,和大家交流一下。 以windows中的扫雷为例,比如说读取雷的数量。...第二个没什么好说的,第三个参数为要打开进程的PID.现在第一个参数为常量,就差第三个参数PID了,PID怎么得到呢?...基本上做外挂,读出内存是最基本的东西,一个游戏中人物的生命值,真气值,等等基础的信息如果不知道,下一步就更加无法进行了。...除了上面的两个API,还可能用到以下几个: 写内存: [DllImport("kernel32.dll")] public static extern Int32 WriteProcessMemory...------------------------------------------------ 下面说下sendmessage的问题,其实不论用API还是.net的方法,对现在的游戏都难以发挥作用,为什么呢
大家好,又见面了,我是你们的朋友全栈君。...CreateRemoteThread和WriteProcessMemory技术 示例程序:WinSpy 另一种注入代码到其他进程地址空间的方法是使用WriteProcessMemory API。...为什么?编译器会把所有的静态字符串放在可执行文件的“.data”段,而仅仅在代码中保留它们的引用(即指针)。...“ ); return 0 ; } zhuangyu1982@hotmail.com: 我用你的程序在windows xp下运行, 弹出messagebox之后, 只要点击确定宿主进程就会崩溃...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。 今天要完成一个项内容,运行另一个应用程序abc.exe,实现它的父进程是explorer.exe。...看来直接的不行,只能用间接的了。把运行abc.exe的代码段写到explorer.exe的内存里面去。然后让explorer来运行这段代码。...THREADDATA data = … {TEXT(“a.exe“),(WINEXEC)GetProcAddress(user32Handle,“WinExec“),} ; WriteProcessMemory...VirtualAllocEx(processHandle, 0 ,sizeOfThreadProc,MEM_COMMIT,PAGE_EXECUTE_READWRITE); // 申请代码的内存区 WriteProcessMemory...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。 今天要完成一个项内容,运行另一个应用程序abc.exe,实现它的父进程是explorer.exe。...看来直接的不行,只能用间接的了。把运行abc.exe的代码段写到explorer.exe的内存里面去。然后让explorer来运行这段代码。...data = … {TEXT( “ a.exe “ ),(WINEXEC)GetProcAddress(user32Handle, “ WinExec “ ),} ; WriteProcessMemory...VirtualAllocEx(processHandle, 0 ,sizeOfThreadProc,MEM_COMMIT,PAGE_EXECUTE_READWRITE); // 申请代码的内存区 WriteProcessMemory...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
领取专属 10元无门槛券
手把手带您无忧上云