自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深耕安全技术研究

欢迎关注公众号【小道安全】 一起交流,一起进步。

  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 安卓反调试实现

不多说了,直接上源码,8种反调试方法。1.//ptrace自己,使得android_server附加不上void anti_debug01(){ptrace(PTRACE_TRACEME, 0, 0, 0);}2.//检测Tracepid的值void anti_debug02(){try{const int bufsize = 1024;char filename[bufsize];char line[bufsize];int pid = getpid();sprintf(fi

2021-01-27 10:45:46 2921 5

原创 android的ptrace详细分析

在系统中调用需要包含头文件及函数声明#include <sys/ptrace.h>int ptrace(int request, int pid, int addr, int data);详细分析函数Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image。它主要用于实现断点调试。一个被跟踪的进程运行中,直到发生一个信号。则进程被中止,并且通知其父进程。在进程中止的状态下,进程的内存空间可以被读写。父进程还可以使子进程继续执行,并选择是否是否忽略引起中止的信号

2021-01-27 10:18:07 4827 5

原创 设计一个安全的排队系统的思考

用排队系统来防炸服,听上去很怂。但是对大热的游戏,或者宕机重启,几万人一起涌上线登录时,一套可靠的排队系统确实可以救命。不过设计一个优秀的排队系统可并不容易:首先要高可用(HA)。千万不能把排队系统设计成一个新的故障源。不能本身成为一个单点的故障。一个单机的排队系统,近似一个 Rate Limiting Algorithms 问题,基于 Leaky Bucket (漏桶)或 Token Bucket (令牌桶) 做一些改良是可以的。但是一旦涉及高可用问题就不一样了。因为系统要依赖一个中心化的队列数据

2021-01-24 09:35:18 4418 9

原创 android studio和jdk环境设置

Jdk安装及环境设置安装jdk一步步安装就可以 了,接着是设置环境变量新增JAVA_HOME(名字大小写一定要一致)新增classpath .;%JAVA_HOME%\libpath字段下变量值新增%JAVA_HOME%\bin判断jdk是否安装成功标志Cmd窗口输入java, javac都能提示正确信息Android studio 安装及环境设置全部一步步单击往下安装就可以,当新建项目后,编译后面没有自动显示app那个运行项的话,那么只要选择File–&

2021-01-24 09:33:19 5197 5

原创 AndroidStudio编译代码出现问题及解决方案

AndroidStudio打开XML文件Design卡在Waitingforbuildtofinish解决方法:重构项目按下:ctrl+shift+A输入:Sync Project with Gradle Files重启Android Studio2.编译so文件的时候出现下面问题,只需要安装下就可以了。...

2021-01-24 09:29:42 1134 1

原创 专注逆向安全开发的研究

十年的安全逆向对抗研究,专注于逆向,安全开发,病毒木马对抗的技术输出,欢迎关注我的公众号 “游戏安全攻防”。

2021-01-22 17:43:46 879 2

原创 游戏部署安全策略方案

1.当我们的主机实例和数据库实例分别部署在同城的两个可用区时候,虽然两个可用区之间的延迟相对比较小,但它仍然存在一定的影响。2.如果刚好游戏业务的数据库操作大部分是使用单线程链接的情况(通常是出于保障事务一致性的考虑),那么各个数据库事物操作都只能顺序发生。3.如果每个的操作都出现了一点点网络延时,那么就会出现了瓶颈。就会导致的结果数据库QPS和TPS远远低于压测的数据。最终导致游戏数据出现问题。3.在开发游戏过程中,对大部分游戏的后端架构来说,没有主备切换机制的多可用区部署是没有意义的。4.游戏业

2021-01-20 22:10:21 2915 9

原创 排队系统利用分布式设计的思考

从分布式系统设计来进行设计排队系统。它有以下特点:1、它具有一致性(Consistency)和事务完整性(Tansactions)要求不高。目的只是控制流量,所以如果一定程度的数据不一致的最糟结果只是进入顺序不一致,或者多进入10%的用户,都是可以容忍的。2、延迟(Latency)尽量低。虽然不追求毫秒级的响应,但是系统处理的速度越快,对系统的压力也就越小。所以还是尽量低。3、流通量(Throughput)要求非常高。要能承受巨大请求压力。4、它对于数据丢失(Data Loss)可容忍。排队的数据

2021-01-19 11:20:19 3147 5

原创 saltstack漏洞

该漏洞具体描述Salt(又称为SaltStack),一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。国外某安全团队披露了SaltStack存在认证绕过导致命令执行漏洞以及目录遍历漏洞。在认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过Salt Master的验证逻辑,调用相关未授权函数功能,造成远程命令执行漏洞,从而获取主服务器及其管理的所有服务器的root权限,危害严重。在目录遍历漏洞中,攻击者通过构造恶意请求,读取服务器

2021-01-16 08:04:28 3894 6

原创 必须知道的导致程序崩溃点。

发生事情的背景:1.在代码开发过程中,有的时候我们会在源代码中添加一些调试代码和信息打印,因为想看看程序执行到这个点会发生些什么。(每次出现这种情况的时候,我建议你想想是否添加一个单元测试用例会更有意义?)调试完就没用的代码,通常没有必要留着。但有的时候,我们仍会留下一些日志打印,以便出现问题时可以更好地进行诊断。2.在C++代码中可以通过条件编译来防止调试代码影响到生产环境,我们也可以通过日志级别来控制调试信息的输出。不过由于疏忽,有时我们仍然可以在生产环境的日志里看到开发人员留下的古怪信息,如果不小

2021-01-14 18:18:12 1165 2

原创 安卓检测root代码

public boolean c() {String[] strArr = {"/system/bin/", “/system/xbin/”, “/system/sbin/”, “/sbin/”, “/vendor/bin/”};int i = 0;while (i < 5) {try {if (new File(strArr[i] + “su”).exists()) {return true;}i++;} catch (Exception e) {}}return false

2021-01-13 17:31:51 4146 5

原创 检测xposed框架实现

更多安全技术文章,请关注“游戏安全攻防”公众号,一起学习,一起进步。直接上源码,直接看吧。private static int l(Context context) {int i = 0;PackageManager packageManager = context.getPackageManager();try {packageManager.getInstallerPackageName(“de.robv.android.xposed.installer”);i = 1;} catch

2021-01-13 17:09:36 2027 5

原创 X86汇编总结

更多安全技术文章,请关注“游戏安全攻防”,一起学习,一起进步。常用的汇编指令有:add sub mov cmp ret nop push pop call jmp je或jz jne或jnz jb ja jg jge jladd为加法 例:add a,b // 把a值加b值然后储存到a里面sub为减法 例:sub a,b // 把a值减b值然后储存到a里面mov为传递值 例:mov a,b // 把b值送给a值,使a=bcmp为比较 例:cmp a,b // 比较a与bret为返回 例:

2021-01-11 09:38:16 1594 2

原创 游戏安全:服务端SQL安全方案。

数据库SQL语句的安全方案1.必须禁用字符串操作的方式来组合执行SQL语句。而使用预编译语句 Prepared statements 来生成 并执行SQL 的请求。2.服务端代码中使用字符串拼接的方式来生成SQL语句进行UPDATE,INSERT是很常见的。我们通常会用 escape_string 的方式进行转义来防止SQL注入。这种方式来操作数据库的风险很高。除了SQL注入漏洞的风险之外。在实际项目中它还会出现一些更难以预防的风险,内存错误等问题。根据谷歌曾经披露的数据,繁忙的业务集群中,每8G

2021-01-08 18:02:56 1996 4

原创 android的主流壳特点。

1.爱加密加固:爱加密加固一般有两个Application入口类,为SuperApplication和NativeApplication,壳的入口点为com.shell.SuperApplication,assets目录下有ijiami.dat、ijiami2.dat、ijiami.ajm,壳的so为libexec.so和libexecmain.so,它们可能在libs目录或assets目录中。2.梆梆加固:Assets目录下有secData0.jar,libs目录下为libSecShell.s

2021-01-06 16:48:06 6382 9

原创 游戏客户端安全方案。

客户端版本号也能让游戏客户端变得不安全。移动端的游戏通常都会根据客户端版本号决定是否要提示客户端升级或下载新的资源。开发通常都会使用 1.1, 1.3, 1.6 这样的版本号。连入网络后和最新客户端版本号进行比较,决定是否升级。进行版本比较的代码,使用了字符串比较。我们都应该知道对于字符串来说: "1.2" 是大于 "1.1", "2.0" 是大于 "1.9" 。而且支持含有多个小数点的版本号,例如 "1.1.0" 是大于 "1.0.9" 的。一行代码,看上去很简单不会有什么问题。在实际

2021-01-04 14:23:28 5735 9

原创 VS编码调试小技巧

1.在VS编码调试的过程中查看汇编代码可以直接按快捷键alt+8,查看内存的时候可以用快捷键alt+62.如果需要在汇编代码中显示机器码,可以在汇编代码界面中鼠标右击,show code Bytes,那样就能实现机器码和汇编代码了。...

2021-01-03 22:47:20 1813 2

原创 某音短视频检测模拟器环境的代码还原

以下的只是分享检测的一部分实现,并且仅为技术研究。1.检测模拟器的实现1.检测模拟器的 imsi的 id是否是310260000000000具体的实现:先判断是否有android.permission.READ_PHONE_STATE权限,在判断当前的运行环境的imsi id 是否是310260000000000这个值,以及判断VoiceMailNumbe是否等于15552175049和 GetDeviceId等于"000000000000000", "012345678912345"这两串值。

2021-01-02 23:03:16 4044 9

当前最全安全资料汇总

漏洞及渗透练习平台 数据库注入练习平台 花式扫描器 信息搜集工具 WEB工具 windows域渗透工具 漏洞利用及攻击框架 漏洞POC&EXP; 中间人攻击及钓鱼 密码破解 二进制及代码分析工具 EXP编写框架及工具 隐写相关工具 各类安全资料 各类CTF资源 各类编程资源

2019-04-23

c++开发精华

是c++软件开发工程师必须掌握的知识,也是入门者必须要懂的知识点

2012-10-26

c++ 开发材料

c++软件工程师必须掌握的知识,也是用来提升能力的材料,更是菜鸟必须要懂的知识

2012-10-23

IT面试材料

中国IT行业精英所出的面试题,经过一年多的整理才完成的

2012-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除