自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十年的安全之路

欢迎关注公众号【游戏安全攻防】 一起交流,一起进步。

  • 博客(25)
  • 资源 (4)
  • 论坛 (1)
  • 收藏
  • 关注

原创 android反调试源码你想要的都在这里。

不多说了,直接上源码,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 48 2

原创 android的ptrace详细分析

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

2021-01-27 10:18:07 39 1

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

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

2021-01-24 09:35:18 3020 8

原创 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 2085 5

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

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

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

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

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

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

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

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

2021-01-20 22:10:21 2117 8

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

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

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

原创 saltstack漏洞

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

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

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

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

2021-01-14 18:18:12 510 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 1958 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 447 2

原创 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 432 2

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

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

2021-01-08 18:02:56 1342 3

原创 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 4531 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 4642 6

原创 VS编码调试小技巧

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

2021-01-03 22:47:20 840 1

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

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

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

原创 安卓防附加和防调试源码实现。

在NDK中实现代码如下,可以直接拷贝就可以用。原理:先用fork()把自身的进程先给附加了,其他进程就附加了,这样就能实现反调试。JNIEXPORT jboolean JNICALL Java_com_protectSelfPid(JNIEnv *, jobject){ pid_t child; child = F(); long orig_eax; if(0 == child) { ptrace(PTRACE_TRACEME, 0, N...

2020-12-29 15:10:26 1062 2

原创 木马病毒外挂的5点思考。

分析木马,病毒,主要是要分析出该exe的流程,一般通过网上找资料,IDA逆向,主要通过分析出进程中的网址、收信息的地址。验证下文件或exe是否是pe结构。 分析盗号木马或者病毒,一般可以通过木马或病毒的接收服务器已经本地保存的进行入手分析整个的流程。盗号的一般都是用LSP注入方式(注册表注入)。 远控木马和最近非常流行的白加黑远控木马存在较大的差异,最近发现的白加黑远控最大的特点就是利用了系统文件rundll32.exe文件外加一个黑的dll文件,在传播方面至少需要三个文件,分别是rundll32.ex

2020-12-29 10:59:08 3015 12

原创 c++中接口文件导出接口FAQ

隐式加载lib:需要xxx.lib,xxx.h两个结合。显示加载dll: 需要xxx.dll文件。(更具灵活性)1.如果选择MFC静态库,那么调用lib的函数名称不用写上Extern”C”可以直接写上__declspec(dllexport) int WinLinCense_add(int a, int b)调用也是一样的,而且函数名称不会被修改,如果要保证不被修改,那么要写上exetern“C”如果选择如果要让导出的函数名称不发生变化...

2020-12-29 10:53:56 957 3

原创 木马病毒你需要知道的15个技术点。

木马病毒方式1:模块通过三方签名过杀毒检测,注册表进行开机启动,通过url进行数据传递,释放不同exe或者文件进行木马功能,感染的dll数据会通过加密,会通过注入explorer.exe,services.exe,spoolsv.exe进行功能实现。木马病毒方式2: 通过向系统进程services.exe, explorer.exe,svchost.exe注入恶意代码。木马病毒方式3:木马配置文件通过网站不断下载,通过执行配置文件来创建svchost.exe傀儡进程。木马病毒方式4:扫描随机i.

2020-12-25 14:14:30 1944 5

原创 分析游戏外挂样本的9大诀窍

分析外挂需要考虑是否修改了代码,数据,是否有模块注入。可以用pchunter中dump外挂运行前后的代码段来判断。如果发现外挂有驱动文件,那么就把驱动文件dump出来,用ida静态分析下,如果发现有大量的读写操作。驱动文件肯定会和应用层进行通信,我们可以hook DeviceIOControl来打印通信的数据。 外挂无注入模块,猜测通过跨进程读写内存,修改代码或模拟协议实现。使用netpeeker网络抓包工具,观察外挂网络收发包情况,发现并没有大量发包过程,猜测可能通过跨进程读写实现或修改代码实现。...

2020-12-22 15:14:02 3467 15

原创 游戏安全的一点思考

移动的游戏能够稳定健康的上线。主要需要依赖以下在四个方面:第一是前端展示,或者说客户端正常运行。性能稳定不崩溃,不过热能够稳定运行。第二是后端,或者游戏后台服务端的。不但要稳定。还有能在有限的服务器资源下,能承受大量的同时在线用户。而且要让游戏中的每个模块都能够承受承受大量的同时在线用户。第三是安全也是重点之中。这既包括客户端,又包括服务端。客户端的安全,包括要防被破解,要防外挂,防协议被解析,防客户端本地数据的泄密。服务端的安全,主要包括防渗透,防中间人攻击,防加速齿轮,防DDOS分布式拒绝访问攻

2020-12-19 10:43:16 3271 10

原创 安卓逆向:重温Thumb汇编指令细节

主要内容1.Thumb指令集详解2.Thumb直接访问的寄存器3.Thumb指令集组成部分详解4.Thumb和arm状态却换5.Thumb的常见应用场景1.Thumb指令集详解•ARM处理器支持两种指令集:ARM指令集和Thumb指令集。•ARM指令集指令长度为32位,Thumb指令集指令长度为16位。在16位外部数据总线宽度下,ARM处理器上使用Thumb指令的性能要比使用ARM指令的性能更好。•存在Thumb指令的意义:兼容数据总线宽度为16为的应用系统。2.Thumb直接

2020-12-16 10:19:50 1158 3

c++开发精华

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

2012-10-26

c++ 开发材料

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

2012-10-23

IT面试材料

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

2012-09-17

当前最全安全资料汇总

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

2019-04-23

求助

发表于 2013-04-03 最后回复 2013-04-03

空空如也

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

TA关注的人 TA的粉丝

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