首页
登录
搜索
登录
搜索
小宇.
学了这么久面向对象却没有对象,后来以为是因为缺少了过程,等学完面向过程早已经物人非,有没有过程并不重要,重要的是运算得到的结果
累计撰写
13
篇文章
累计收到
9
条评论
首页
栏目
首页
登录
Linux C++ HTTP(S) && ProgressBar && TCP/IP
【原创教程】Crackme2完整解析过程,满满的全是干货
Hello, World!
最新文章
2024-8-25
HashPump - 功能优化版
HashPump 这个工具用于MD5长度拓展攻击 若已知原数据长度不知道内容,如果留空回车会无限循环,所以我做了一些修改,并增加了Urlencode输出 注:原项目:Github 下载链接 HashPump-sources.zip HashPump-amd64.zip HashPump-amd64-stati... HashPump-arm64.zip Ha...
2024年-8月-25日
1639 阅读
2 评论
未分类
2024-8-23
BaseCTF Writeup: 原神,启动
[该文章已加密,请点击标题输入密码访问]
2024年-8月-23日
22 阅读
0 评论
未分类
2024-6-20
基于Java特性的安卓客户端广告拦截和用户管理系统设计与实现
摘要 本文介绍了一种基于Java特性的安卓客户端广告拦截和用户管理系统的设计与实现方法。通过Xposed框架改变Class运行逻辑,实现对广告的拦截和屏蔽,并通过无障碍功能自动点击广告的“跳过”按钮。客户端采用授权方式进行用户管理,后端使用SpringBoot框架结合Nginx,配合Redis和MySQL等技术,设计了分布式系统以应对大量用户的请求,保障系统的高效和安全运行。 关键词 Java,Xposed,广告拦截,SpringBoot,Nginx,Redis,MySQL,安全加密 1. 引言 在移动互联网应用中,广告是开发者重要的收入来源,但对用户体验产生了较大影响。为了解决这一问题,本系统设计了一种基于Java特性的广告拦截方案,通过Xposed框架和无障碍功能来拦截广告,保障用户的体验。同时,通过构建高效安全的后端系统,实现对用户和设备的管理。 2. 系统架构 系统主要分为客户端和后端两部分。客户端负责广告拦截和用户交互,后端负责数据存储、用户认证和业务逻辑处理。 2.1 客户端设计 客户端通过Xposed框架对应用程序的Class进行修改,以达到广告拦截的目的。在遇到加密软件(如360加密、梆梆加固等)时,客户端通过Application.attachBaseContext方法获取真实的dex和class文件,从而实现对广告的拦截。此外,通过无障碍功能实现自动点击广告的“跳过”按钮,提高用户体验。 2.1.1 Xposed框架实现 客户端利用Xposed框架对目标应用的Class进行动态修改,以达到拦截广告的目的。以下是示例代码: public class AdBlocker implements IXposedHookLoadPackage { @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { if (!lpparam.packageName.equals("com.target.ad.app")) return; XposedHelpers.findAndHookMethod("com.target.ad.AdClass", lpparam.classLoader, "showAd", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { // 拦截广告逻辑 param.setResult(null); // 拦截广告显示 } }); } } 2.1.2 无障碍功能实现 在无法通过Xposed框架完全拦截广告的情况下,使用安卓无障碍功能自动点击广告的“跳过”按钮: public class AccessibilityService extends android.accessibilityservice.AccessibilityService { @Override public void onAccessibilityEvent(AccessibilityEvent event) { // 实现自动点击“跳过”按钮逻辑 } @Override public void onInterrupt() { // 中断处理 } } 2.2 用户授权机制 客户端采用邮箱注册授权机制,一个账号最多可授权5个设备,赞助金额达到10元及以上才能获得使用资格。注册和授权通过邮件验证码进行验证,确保用户的合法性和安全性。 2.3 后端设计 后端采用SpringBoot框架,结合Nginx服务器,使用Redis进行缓存管理,MySQL进行数据存储,并设计了分布式系统以应对大量用户请求,保障系统的高效运行。 2.3.1 用户认证和授权 用户在注册时需验证身份,服务器通过SMTP发送邮件到注册邮箱,用户输入验证码通过后才能继续注册和授权设备。找回密码也采用同样的方式。 2.3.2 安全加密 账号的密码存储采用高强度算法加密,保障用户隐私安全。加密算法如下: public static @NotNull String password(@NotNull String password, @NotNull String key) throws Exception { if (key.length() < 8) key += key; return md5(sha1(Arrays.toString(des(password.getBytes(), key.substring(0, 8).getBytes())))); } 2.3.3 邮件发送服务 后端服务发送邮件的代码实现如下: @Service @RestController public class MailService { private final JavaMailSender mailSender; private final TemplateEngine templateEngine; public MailService(JavaMailSender mailSender, TemplateEngine templateEngine) { this.mailSender = mailSender; this.templateEngine = templateEngine; } public void send(String to, String sender, String title, String verificationCode) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(sender + " <support@hujiayucc.cn>"); helper.setTo(to); helper.setSubject(title); Context context = new Context(); context.setVariable("verificationCode", verificationCode); String html = templateEngine.process("email-code", context); helper.setText(html, true); mailSender.send(message); } } 邮件模板: <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>小宇网络工作室</title> </head> <body> <p>尊敬的用户,您的验证码是:<strong th:text="${verificationCode}"></strong>,10分钟内有效。</p> </body> </html> 3. 系统性能与安全 为了应对大量用户的访问,后端系统采用了分布式设计,通过Redis缓存减少数据库访问频次,提升系统性能。同时,密码采用高强度加密算法存储,确保用户信息安全。 4. 结论 本文设计并实现了一种基于Java特性的安卓客户端广告拦截和用户管理系统,通过Xposed框架和无障碍功能实现广告拦截,并结合SpringBoot、Nginx、Redis和MySQL等技术,构建了高效、安全的后端系统。该系统在保证用户体验的同时,保障了系统的高效运行和数据的安全性。 参考文献 【Github】Fuck-AD
2024年-6月-20日
1801 阅读
1 评论
未分类
2024-5-25
Android操作系统对Android/data访问路径判断存在逻辑缺陷
[该文章已加密,请点击标题输入密码访问]
2024年-5月-25日
1289 阅读
0 评论
默认
2024-5-2
Nginx 1.25.x开启HTTP/3
运行环境 Linux Debian 12 Nginx 1.25.5 教程开始 1. 查看是否支持HTTP3 nginx -V 只要有--with-http_v3_module就支持 设置Nginx配置 #IPv4 listen 80; listen 443 ssl; listen 443 quic; # IPv6 listen [::]:80; listen...
2024年-5月-2日
2789 阅读
0 评论
默认
2024-4-23
Hello World!
public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World!"); } }
2024年-4月-23日
3938 阅读
0 评论
默认
2023-10-31
Linux C++ HTTP(S) && ProgressBar && TCP/IP
太久没更新内容了,今天水水贴,我比较不爱交流 也没啥好说的,那就简单写两个小Demo吧,旨在互相交流学习 static const char* REGEX_DOMAIN = "[^//]*?\\.([^/ | ^:{1,5}/]*)"; 查看详情
2023年-10月-31日
4795 阅读
2 评论
默认
2023-9-5
【原创教程】Crackme2完整解析过程,满满的全是干货
Crackme2解密全过程
2023年-9月-5日
3717 阅读
0 评论
默认
2023-9-3
Crackme2.0源代码
Crackme2.0源代码 main.cpp, main.h, libxy.cpp
2023年-9月-3日
3310 阅读
0 评论
默认
2023-9-3
【有奖活动】解密Crackme,拿大奖!
解密Crackme有奖活动2.0
2023年-9月-3日
3655 阅读
0 评论
默认
1
2