- WireShark抓包软件介绍和安装
花落已飘
Linux网络编程实战wireshark测试工具网络
文章目录一、WireShark软件介绍1.**概述**2.**主要功能**3.**使用场景**4.**安装和使用**5.**优点和限制**6.**结论**二、WireShark的安装三、WireShark的基本使用1.**混杂模式(PromiscuousMode)****概述****工作原理****应用场景****启用方式**2.**普通模式(Non-PromiscuousMode)****概述*
- jdk升级到11问题系列-第三方依赖使用了BASE64Decoder
uplinker
javajavajdk11
问题描述:第三方依赖包,目前出现问题的是某银行的sdk导致的使用了sun.misc.BASE64Decoder但是在jdk11这个版本该类已经被删除,导致运行是出现错误Causedby:java.lang.NoClassDefFoundError:sun/misc/BASE64Encoder替换方式:Base64.Encoderencoder=Base64.getEncoder();Base64.
- vue中导入导出Excel
前端小白一枚
笔记vue导入导出Excel
以下仅个人做笔记使用:简单版导出Excel1、安装依赖:cnpminstall--savexlsxfile-savercnpmiscript-loader-S2、下载两个js文件:Blob.js和Export2Excel.js(放在最后面)3、添加导出按钮:导出数据4、添加导出事件:derive(){this.$http.post('admin/service_list',{pre_page:th
- buuctf-misc-二维码1
mlws1900
ctfbuuctfmiscservletjarjava
显而易见的二维码题目,解压得到一个二维码解码获取内容secretishere我以为到这就结束了,flag{}加上就ok,结果发现失败用winhex打开看一下发现里面存在一个4numbers.txt用软件分离出来发现要密码,写着4numbers,应该就是纯数字密码爆破利用工具进行压缩包密码爆破密码为7639解压获得flagCTF{vjpw_wnoei}提交时候要改成flag{vjpw_wnoei}
- 攻防世界-MISC-Excaliflag
unable code
CTF网络安全ctfmisc
知识点1.stegsolve切换色道步骤用stegsolve打开,切换色道,发现flag。flag:3DS{Gr4b_Only_th1s_B1ts}
- 【防攻世界】misc解题思路-学习笔记
CarrotNot
MIsc解题练习学习安全
前言靶场地址:防攻世界一、Catfalg丢进kali或者其他Linux系统直接catflag二、MeowMeow可爱的小猫这道题就很离谱,flag需要用010工具打开,拉到最后就可以看到文字样式组起来就是:CatCTF{CAT_GOES_MEOW}
- 2021-09-28 网安实验-杂项-SCTF-Misc400A
愚公搬代码
愚公系列-网络安全实验测试工具windows
相关知识WireSharkWireshark是一个网络数据包分析软件,即通常所说的抓包软件。Wireshark可以抓取通过制定网卡的所有网络数据包,并根据数据包的格式尽可能显示出最为详细的信息,其支持各种主流的网络通信协议。Wireshark使用WinPCAP作为接口,直接与网卡进行数据交换。Wireshark提供了显示过滤控制,使用tcpcontains".rar"过滤器可以过滤含有.rar字符
- 攻防世界-MISC-Erik-Baleog-and-Olaf
unable code
CTF网络安全ctfmisc
知识点1.stegsolve切换图片查看模式2.二维码修复步骤一下载附件解压,发现没有后缀,在010打开,发现png字样,改后缀为png,打开发信啊没发现什么有用的信息。步骤二:根据图片名字stego100猜测用stegsolve,用stegsolve打开,切换图片,发现有二维码,找到最清楚的一张,截图后,用ps修复,扫码拿到flag。flag{#justdiffit}
- Eclipse 编译CMS32L051出现,exit.c:(.text+0x18): undefined reference to `_exit‘
otssky
c++
第一个解决方法:链接器加--specs=nosys.specs参数;第二种解决方法:其实是漏了脚本ld文件。在属性-》C/C++Build-》Settings-》ToolSettings-》XXlinker-》Miscellaneous中将ld脚本加上。
- Qemu搭建RISC-V,运行opensbi+u-boot+img
数据库
使用Qemu搭建RISC-V开发环境并运行opensbi+u-boot+img一、环境准备与依赖安装1.安装Qemu(需支持RISC-V)#Ubuntu/Debian系统sudoapt-getupdatesudoapt-getinstallqemu-system-miscgcc-riscv64-linux-gnubinutils-riscv64-linux-gnu#CentOS/RHEL系统sud
- STM32笔记-定时器TIM中断
青云客_Hugh
STM32单片机stm32嵌入式
STM32笔记-定时器TIM中断一、开发环境二、功能:三、源码一、开发环境开发板:STM32F407ZE二、功能:TIM3中断每1秒亮1次LED1TIM2中断每1秒亮2次LED2TIM5中断每1秒亮3次LED3TIM1中断每1秒亮4次LED4三、源码#include"tim.h"#include"led.h"#include"stm32f4xx_tim.h"#include"misc.h"void
- Linux 命令大全之 ifconfig命令
传说三哥
linux基础入门linux运维Linux基础Linux命令ifconfig
Linuxifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。语法ifconfig[网络设备][downup-allmulti-arp-promisc][add][del][][io_addr][irq][media][mem_start][metric][mtu][netmask][tunnel][-broadcast][-pointopoint
- Android 14.0 展讯系统内存优化之修改dalvik虚拟机的内存参数
安卓兼职framework应用工程师
android14.0Rom定制化系列讲解dalvikframeworkrom虚拟机ddr
1.前言在14.0的系统rom开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下虚拟机分配内存的相关原理2.展讯系统内存优化之修改dalvik虚拟机的内存参数的核心类vendor\sprd\generic\misc\system\
- 抓取perfetto trace
抓取perfettotrace:2023-2-26hongxi.zhu已验证(仅限于AndoridS及以上版本使用)通过配置文件抓取:catconfig.pbtx|adbshellperfetto-c---txt-o/data/misc/perfetto-traces/trace.perfetto-traceadbpull/data/misc/perfetto-traces/trace.perfe
- HC-SR501 人体红外感应模块 单片机
XD742971636
单片机HC-SR501单片机模块人体红外传感器
https://blog.csdn.net/zy19981110/article/details/89947118?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161616067916780357245177%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D
- Bugku CTF梳理
AquilaEAG
大佬的刷题记录:https://blog.csdn.net/mcmuyanga1.CTF常见题型CTF比赛通常包含的题目类型有七种,包括MISC、PPC、CRYPTO、PWN、REVERSE、WEB、STEGA。MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等。PPC(ProfessionallyProgramCoder)类型,即编程类题
- Linux内核编译流程解析
攻城狮星河
linux内核学习之路linux运维服务器
文章目录前言1、编译信息2、编译全流程图3、编译详细流程1、编译链接-ELF文件-vmlinux2、objcopy-Image3、将Image文件压缩成piggz.gzip4、链接解压缩代码-zImage镜像5、uImage4、关于内核解压缩函数1.head.o:2.misc.o:3.decompress.o:三者的协作流程前言此文章为《嵌入式C语言自我修养》的读书笔记,仅作为个人学习记录,大部分
- linux ftp编译,linux vsftpd-3.0.2.tar.gz编译安装
monprotocol
linuxftp编译
#groupaddvsftpd#useraddvsftpftp-gvsftpd-d/data/www-s/sbin/nologin#passwdvsftpftp输入两次密码#cd/usr/local/src#wgethttp://fossies.org/linux/misc/vsftpd-3.0.2.tar.gz#tarzxvfvsftpd-3.0.2.tar.gz#mvvsftpd-3.0.2/
- [论文阅读] 人工智能 | 如何快速检测LLM生成的代码?这篇论文提出了一个巧妙的方法
张较瘦_
前沿技术人工智能论文阅读
如何快速检测LLM生成的代码?这篇论文提出了一个巧妙的方法论文引文格式@misc{ashkenazi2025zero,title={Zero-ShotDetectionofLLM-GeneratedCodeviaApproximatedTaskConditioning},author={MaorAshkenaziandOfirBrennerandTalFurmanShohetandEranTrei
- JDK从8升级到21的问题集
程序员
作者:京东工业韦付芝一、背景与挑战1.升级动因◦Oracle长期支持策略◦现代特性需求:协程、模式匹配、ZGC等◦安全性与性能的需求◦AI新技术引入的版本要求2.项目情况◦100+项目并行升级的协同作战◦多技术栈并存◦持续集成体系的适配挑战二、进度应用总数已完成应用下线待升级100+731310+三、主要问题域与解决方案1.依赖管理的"蝴蝶效应"•sun.misc.BASE64Encoder等
- 机顶盒CM311-5s纯手机免拆刷机,全网通,当贝桌面
斯南
智能手机
需要用到的工具安卓手机一台甲壳虫adb助手(安卓app)OTG转换线一个(或者用usb,typec双头的U盘一个,未测试)8gU盘一个用到的刷机文件1.放入手机中的文件miscrecovery2.放入U盘根目录update.zip(系统升级包)update0.zip(系统降级包)刷机步骤1.电视盒子开机交替按遥控器菜单键和音量减建进入recovery模式,多试几次2.选择Applyupdatefr
- 【Open CV 安装】OpenCV-python安装教程(内含国内各镜像下载网站)
一只在学习的瓶子
opencvpython人工智能
这个教程很棒了推荐一下https://blog.csdn.net/qq_41627235/article/details/87692748?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159039863319724845029717%2522%252C%2522scm%2522%253A%252220140713.13010233
- (Linux)(misc)binwalk命令下分离文件
small_white_robot
Toolsweb安全
在该文件目录打开终端sudobinwalkfilename查看文件是否藏有其他文件sudobinwalk-efilename分离出文件中的隐藏文件如果失败就在后面添加--run-as=root就可以。一般就会用到这两个命令,更复杂的推荐foremost或者dd
- CTF-misc base家族特点及考点——摸索篇
small_white_robot
ctfweb安全
目录一、base家族各自的特点:二、清楚特点后,base编码的考点:1.base解码2.base密文转图片3.准确来说是base的障眼法
- opencv保存mp4文件格式,出现问题提示OpenCV: FFMPEG: fallback to use tag 0x7634706d/‘mp4v‘
Daweixi
视频处理opencvopencvffmpeg
https://blog.csdn.net/qq_39877362/article/details/105179245?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159721680319195264534996%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fa
- linux下mpu6050驱动 i2c
LitchiCheng
linux传感器clinux
linux下mpu6050驱动环境介绍大致流程接线修改设备树增加驱动文件devstructopenreleasereadopsmatchproberemovei2cdrivermisc完整代码示例环境介绍imx6ullmpu6050模块(i2c接口)ubuntu18.04大致流程接线,对照原理图,找到i2c的资源,这里我们用的i2c2的接口修改设备树,在对应i2c2控制器下增加节点增加驱动文件,对
- PyTorch Lightning报错「MisconfigurationException」:多GPU训练与DDP模式的配置检查
喜欢编程就关注我
pytorch人工智能pythonLightning报错多GPU训练与DDP模式的配置检查代码
PyTorchLightning报错「MisconfigurationException」:多GPU训练与DDP模式的配置检查在多GPU训练中,PyTorchLightning用户常遇到MisconfigurationException错误,通常与分布式训练配置(如GPU设备选择、进程组初始化等)有关。本文结合CSDN社区的实战经验,系统性解析该错误的成因,并提供从环境配置到代码实现的完整解决方案
- Android性能分析之emmc坏块测试
Ian22l
1.android支持emmc坏块测试工具代码路径:./external/e2fsprogs/misc/badblocks.cAndroid.bp编译方式:./external/e2fsprogs/misc/Android.bp//########################################################################//Buildbadbl
- 2024第八届全国职工职业技能大赛“网络与信息安全管理员”河北省预选拔赛解析
落寞的魚丶
2024第八届职工职业技能大赛网络安全网络与信息安全管理员省赛选拔赛CTF
2024第八届全国职工职业技能大赛“网络与信息安全管理员”某省选拔赛解析2024第八届全国职工职业技能大赛“网络与信息安全管理员”某省选拔赛解析第一场:CTFWeb:Web1:Web2:MISC:Crypto:crypto1:crypto2:PWN:PWN1:PWN2:第二场:数据安全:鹅鹅鹅:Antpro:需要培训可以私信博主欢迎交流学习!2024第八届全国职工职业技能大赛“网络与信息安全管理员
- PPOCRv4推理模型转换为nb模型
AAA抗刀小玉
ocrpaddleocrpythonpaddlepaddle深度学习
一、前期准备Andriodstudio4.2参考:https://blog.csdn.net/qq_40647372/article/details/133266819?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522246c9d8e3affc84f010618778b02955d%2522%252C%2522scm%2522%253
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache