- 5.PE——使用代码在任意节空白区添加shellcode
蓝屏达人
PE文件结构windows
继上一篇手动添加shellcode,这篇以代码来实现,要思路的话还请去上一篇看,这篇为纯代码main代码:#pragmaonce#include"FileUtil.h"#include"ImageUtil.h"intmain(){unsignedintsize;char*buf=ReadFile("D:\\project\\cpp\\test.exe",&size);//检查是否读取成功if(bu
- Pwntools 的详细介绍、安装指南、配置说明
程序员的世界你不懂
效率工具提升百度新浪微博
Pwntools:Python开源安全工具箱一、Pwntools简介Pwntools是一个由Securityresearcher开发的高效Python工具库,专为密码学研究、漏洞利用、协议分析和逆向工程设计。它集成了数百个底层工具的功能,提供统一的PythonAPI接口,广泛用于CTF竞赛、渗透测试和安全开发。其核心优势包括:模块化设计:支持密码学、网络协议、shellcode生成等全栈操作跨平台
- Windows X64 弹计算器shellcode
在学02
汇编
[72,129,236,0,1,0,0,101,72,139,4,37,96,0,0,0,72,139,64,24,72,139,64,48,72,139,112,16,72,139,88,64,72,139,0,129,123,12,51,0,50,0,117,236,72,139,206,72,199,194,50,116,145,12,232,192,0,0,0,76,139,240,72,
- ret2libc 题型详解
bae-唯一
PWN网络安全ret2libc
1.攻击背景与原理当程序启用NX(No-eXecute)保护时,栈、堆等内存区域不可执行,传统的shellcode注入失效。此时,攻击者可通过覆盖返回地址,跳转到程序本身或动态库(如libc)中的已有函数(如system、execve),实现攻击。核心思路:通过栈溢出覆盖返回地址,使其跳转到libc中的函数(如system)并传递参数(如/bin/sh)。2.PLT和GOT的作用PLT(Proce
- C++调用python
Rachel-Zhang
PythonC/C++shellpythoncommandMakefileC++
本文以实例code讲解C++调用python的方法。本文在util.h中实现三个函数:1.init_log:用googlelog(glog)初始化log2.exe_command:由C++执行shellcode3.exe_py:C++调用python文件Code:Python:defpr(args):forarginargs:printargC++:include/util.h:/********
- hackcon ctf 2018 | pwn wp
fantasy_learner
BOF漏洞点:栈溢出利用过程栈溢出跳转callMeMaybe函数获得flagexpSheSellsSeaShells90流程分析:给出了输入的栈地址有一个栈溢出点没有nx利用过程:根据以上三点,得出可以使用ret2shellcode使用shellcraft生成shellcode利用栈溢出,输入并跳转到shellcodeexpSimpleYetElegent150这道题目做了最久,卡在了能否根据_d
- 打印出ntdll.dll中所有函数名字和地址
codesailor
网络安全实验
0x01打印出ntdll.dll中所有函数名字和地址0x02在任何进程中都可以找到ntdll.dll和kernel32.dll这个动态链接库的基地址,另外每一个动态链接库基地址实际上都存放在一个双向链表的节点上,只要找到这个双向链表,就可以找到所需要的动态链接库基地址,然后就可以调用乱七八糟的函数,将shellcode放在一个精妙的地方。0x03代码如下://GetKernel32FuncAddr
- 第1天:基础入门-操作系统&名词&文件下载&反弹Shell&防火墙绕过-小迪安全学习
慘綠青年627
网络安全
名词概念前后端,POC/EXP,Payload/Shellcode,后门/Webshell,木马/病毒,反弹,回显,跳板,黑白盒测试,暴力破解,社会工程学,撞库,ATT&CK等https://www.cnblogs.com/sunny11/p/13583083.html基础案例1:操作系统-用途&命令&权限&用户&防火墙个人计算机&服务器用机Windows&Linux常见命令https://blo
- pwn学习笔记(2)ret_2_text_or_shellcode
晓幂
学习笔记
pwn学习笔记(2)1.三种常见的寄存器:ax寄存器:通用寄存器,可用于存放多种数据bp寄存器:存放的是栈帧的栈底地址sp寄存器:存放的是栈顶的地址2.栈帧与栈工作的简介:栈帧是存储函数的一些信息的地方,栈帧存储有函数的局部变量,传递给子函数的实际参数,父函数的地址以及上一个栈帧栈底的地址,大致情况如下:在函数调用的过程中,首先会讲bp寄存器的值进行压栈,以方便在恢复的时候恢复栈底寄存器的值,再之
- Linux x64下编写shellcode - execve(/bin/sh)
静析机言
1、将下述汇编代码存储为sh.ssection.textglobal_start_start:pushraxxorrdx,rdxxorrsi,rsimovrbx,'/bin//sh'pushrbxpushrsppoprdimoval,59syscall2、用nasm编译执行nasm-felf64sh.s-osh.oldsh.o-osh3、显示汇编代码objdump--disassemble./sh
- 【Web】小白友好的Java内存马基础学习笔记
Z3r4y
java内存马webshellwebctfweb安全木马
目录简介文件马与内存马的比较文件马原理内存马原理内存马使用场景内存马分类内存马注入方式这篇文章主要是概念性的,具体技术细节不做探究,重点在祛魅。简介内存马(MemoryShellcode)是一种恶意攻击技术,旨在通过利用程序或操作系统的漏洞,将恶意代码注入到系统内存中并执行。与传统的攻击方式不同,内存马不需要将恶意代码写入磁盘上的文件,而是直接在内存中进行操作,从而避开传统的安全防护措施。内存马的
- Python常见的免杀方式
Lyx-0607
笔记
10.1节介绍了通过msfvenom生成shellcode,并通过Python程序加载执行,又介绍了如何将Python的.py文件生成为exe文件。使用pyinstaller生成的可执行文件本身就具有一定的免杀能力,但是在与杀毒软件对抗时,部分杀毒软件也可以通过分析可执行文件的内容来判断文件是否为恶意程序,导致这些代码仍然具有被杀的可能。对于用msfvenom生成的shellcode,在生成时可以
- shellcode
Lyx-0607
笔记
生成shellcode在漏洞利用中,shellcode是不可或缺的部分,所以在网上有许多公开分享的shellcode,在不同平台上并不通用,需要选择适合的shellcode。这里推荐两个常见公开的安全平台:一个为公开的漏洞库exploit-db(见公众号链接10-1),一个为公开的Shell-strom库(见公众号链接10-2),如图10-1和图10-2所示。图10-1exploit-db公开漏洞
- 渗透测试常用术语总结
沫风港
web安全安全
渗透测试常用术语总结题记人的一生会遇到两个人,一个惊艳了时光,一个温柔了岁月。——苏剧《经年》正文我是会把我遇到很晦涩或者难以理解的词语分享到这的。相信大家和我一样,搞不清这些专业名词的区别,所以我来整理一下。1.POC、EXP、Payload与ShellcodePOC:全称'ProofofConcept',中文'概念验证',常指一段漏洞证明的代码。EXP:全称'Exploit',中文'利用',指
- 【ctf题目系列】ctfwiki pwn类型
安安csdn
安全ctfwikipwn
categories:ctfret2shellcode[root@ninganret2shellcode]#./ret2shellcodeNosystemforyouthistime!!!123byebye~[root@ninganret2shellcode]#checksec检查[root@ninganret2shellcode]#checksecret2shellcode[!]Couldnot
- 从网上下载的安全研究工具,别乱点
熊猫正正
安全网络安全系统安全安全威胁分析
前言前天笔者微信群里有个朋友发了一段聊天记录,说是有一个ShellCodeLoader工具好像是CS木马,如下:笔者本来想从GitHub下载样本研究一下,发现链接已经失效了,于是找群里的朋友要了样本,就给大家简单分析一下,对一些好玩的样本,笔者一直本着“不放过”的研究态度,就当好玩吧,其实做安全也就是好玩。分析拿到样本之后,发现包含两个程序:LoaderMaker.exe和ShellcodeLoa
- 01-操作系统_名词_文件下载_反弹
月亮今天也很亮
小迪安全学习web安全网络网络安全
操作系统_名词_文件下载_反弹一、渗透测试1.1、POC、EXP、Payload与Shellcode1.2、后门1.3、木马1.4、反弹1.5、回显1.6、跳板1.7、黑白盒测试1.8、暴力破解1.9、社会工程学1.10、撞库1.11、ATT&CK二、案例演示2.1、基础案例1:操作系统-用途&命令&权限&用户&防火墙2.1.1、Linux常见命令2.1.2、windows常见命令2.1.3、文件
- ubuntu18 安装k8s、openyurt
mpb
docker容器kubernetes
参考链接ubuntu部署k8shttps://blog.csdn.net/SHELLCODE_8BIT/article/details/122192034ubuntu永久关闭swaphttps://blog.csdn.net/Marco_90/article/details/121491195虚拟机组网https://www.jianshu.com/p/e6684182471bhttps://ww
- ARM汇编之TCP Bind Shell
Dr. 熊
bindshell作为一个bindshell,也就是在服务器上运行的shellcode,等待hacker去主动连接,所以它的主要工作就是监听固定端口,等待外部连接即可C代码(Linux,都是使用man命令查询的命令介绍)指令介绍socketintsocket(intdomain,inttype,intprotocol);创建通信端点并返回描述符bindintbind(intsockfd,const
- pwn学习笔记(1)
晓幂
学习笔记
pwn学习笔记(1)(1)pwn简介:以下来自于百度百科:”Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了。(2)几个简单的名词:exploit:用于攻击的脚本与方案payload:攻击载荷,是对目标进程劫持控制流的数据shellcode:调用攻击目标的shell代码,常见的有bash和sh
- 2、安全开发-Python-Socket编程&端口探针&域名爆破&反弹Shell&编码免杀
++
Pythonpython网络安全
用途:个人学习笔记,欢迎指正!目录主要内容:一、端口扫描(未开防火墙情况)1、Python关键代码:2、完整代码:多线程配合Queue进行全端口扫描二、子域名扫描三、客户端,服务端Socket编程通信cmd命令执行1、客户端:2、服务端:四、python代码shellCode编码免杀&后门上线1、CS生成shellcode2、python未编码:二进制shellcode执行,CS上线代码3、将sh
- 【二进制漏洞】缓冲区溢出漏洞
星盾网安
安全
天命:好像复现成功了,又好像没有完全成功学习视频:抓住漏洞!缓冲区溢出漏洞利用实例,如何利用溢出执行ShellCode_哔哩哔哩_bilibili漏洞复现实验环境:kali(其实啥都试过,windows,ubuntu16,云服务器,效果都是一样)先写一个.c文件,里面写一个不会被调用的函数gcca.c#编译成可执行文件gdba.out#进入调式查看main函数的反汇编代码这一行应该就是缓冲区了,1
- V8 沙箱绕过
XiaozaYa
V8V8沙箱绕过
文章目录前言指针压缩v8沙箱沙箱绕过利用立即数写shellcode利用WasmInstance的全局变量前言本文完全参考Jay1n和_sky123_大佬文章:V8沙箱绕过和Chromev8pwn,因此仅仅做记录方便日后查看,如果读者想更详细地了解该技术,请移步至上述参考文章这里是以DiceCTF2022memoryhole题目为例展开的,出题者已经给了编译好的d8,这里就直接用了,就是调试不是很方
- ctf-wiki之ret2shellcode学习笔记
hope_9382
shellcode是3用于完成某个功能的汇编代码。通常用于获得目标系统的shell。查看下程序的保护没有开启任何保护在IDA中看到gets函数明显的栈溢出漏洞gets中获取的输入还会被复制到buf2中,且buf2存在于.bss段中buf2存在与.bss段.bss段通常时用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域。特点是可读写,在程序执行之前.bss段会自动清0。因此我
- 驱动ShellCode注入
虚构之人
操作系统二进制win内核驱动开发安全web安全系统安全安全架构
文章目录驱动ShellCode注入提权简述驱动ShellCode注入提权简述常见的ShellCode加载器都是在R3层进行的如果有同学想在R0实现RootkitC2并实现ShellCode注入或者是,ShellCode加载器那么可以参考如下代码,该代码主要使用KeStackAttachProcess附件目标进程切换堆栈实现,ShellCode加载效果。#include#include//Shell
- 二进制安全虚拟机Protostar靶场(4)写入shellcode,ret to libc,构造ROP链 Stack Five,Stack Six,Stack Seven
Ba1_Ma0
pwn安全pwn二进制安全ctflinux
前言这是一个系列文章,之前已经介绍过一些二进制安全的基础知识,这里就不过多重复提及,不熟悉的同学可以去看看我之前写的文章二进制安全虚拟机Protostar靶场安装,基础知识讲解,破解STACKZEROhttps://blog.csdn.net/qq_45894840/article/details/129490504?spm=1001.2014.3001.5501二进制安全虚拟机Protostar
- mrctf2020_shellcode_revenge
z1r0.
pwn
mrctf2020_shellcode_revenge查看保护只能看汇编,那就看一下吧,这个函数意思其实就是输入的长度大于0则中转到11ac。看一下11ac给rbp-4的地方赋值为0,接着进123a这个函数其实就是如果输入字符串长度大于0则跳转到11b8,否则call。这里放shellcode不在0x60-0x7a跳转0x40-0x5a0x2f-0x5a可以看到当0x60-0x70时不会跳转,0x
- BUUCTF pwn——mrctf2020_shellcode
Captain杰派罗
[个人向]做题练习WP网络安全
checksec运行直接输入就行idamain函数read限制了长度,没有超过buf的大小,不存在溢出由题,可以直接放shellcode试试反编译报错:Decompilationfailure:11DDcallanalysisfailed如图1.跳转到地址2.Patchprogram(修补程序)→Changebyte(单字节修改)将前两对十六进制改成9090之类然后,可以F5了可以自己在原汇编和f
- [BUUCTF]PWN——mrctf2020_shellcode_revenge(可见字符shellcode)
Angel~Yan
BUUCTF刷题记录PWN
mrctf2020_shellcode_revenge例行检查,64位程序,开启了RELRO和PIE本地运行看一下大概的情况64位ida载入,没法f5,直接看汇编jg大于则跳转,jl小于则跳转,jump无条件跳转要让程序继续执行下去,肯定是跳转loc_11ACloc_123Aloc_11B8cdqe使用eax的最高位拓展rax高32位的所有位movzx则是按无符号数传送+扩展(16-32)EAX是
- [BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)(内涵peak小知识)
Y-peak
#BUUCTF
[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)检查了下保护发现NX没有开,肯定要自己写shellcode呀。不过这道题,刷新了我的认知。众所周知,手写的shellcode里面肯定有很多不可见字符。第一次碰到可见的shellcode。看下IDA,不能反汇编不过问题不大,没事.个人建议,看汇编的时候,建议看流程图,更加直观将shellc
- Dom
周华华
JavaScripthtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
- msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
- 路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
- Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport报表工具web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
- c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
- 分析Spring源代码之,DI的实现
aijuans
springDI现源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
- for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
- 网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
- JDK1.5 生产消费者
bijian1013
javathread生产消费者java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
- JAVA版身份证获取性别、出生日期及年龄
bijian1013
java性别出生日期年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
- 【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
- 【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
- Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
- java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
- mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
- [毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
- PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHPExcel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
- IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBMjmsuserMQMCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
- 网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
- Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chromevim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
- MongoDB查询(2)——数组查询[六]
eksliang
mongodbMongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
- cordova读写文件(1)
gundumw100
JavaScriptCordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
- HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jqueryAjaxhtml5FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
- swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
- java实现SMTP邮件服务器
macroli
java编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
- mongodb group by having where 查询sql
qiaolevip
每天进步一点点学习永无止境mongo纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
- Struts2 Pojo(六)
Luob.
POJOstrust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
- struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st