# **背景**
早已存在sdk、webapi版接口,为什么还推出UserApi接口,原因:sdk是dll,代码封装固定,开发者动不了,破解者喜欢hook sdk接口,不使用远程函数很容易通杀和山寨,而远程函数新手不懂使用;webapi虽然用https防抓包防修改,但是破解者不是从这里下手,喜欢断点https请求的系统api,容易定位加密前的数据和修改,从而破解和山寨。所以推出UserApi,UserApi加密数据不使用任何api,从而增加定位明文数据的成本,每人的加密key不一样(后台可修改),你想方设法把key保护起来是你最终的防破手段,当然,这涉及到很多逆向知识,如 反找栈数据、反找堆数据,这个靠你积累。其二,UserApi接口和参数设计较合理,用户可控性强,后端代码更健壮,可维护性好。
# **接口请求格式**
**`例如:`**
```
http://1.5yyz.com/UserApi?appid=78×tamp=1549432081000&data=00B1E2614920F33EF6902D4DCA938E0575B2F66C79230A5974E9BD04&sign=2264eec97efa368ee58c4362195c5172
```
**`参数描述:`**
| 参数名 | 类型 |必需|说明 |
| --- | --- |---|---|
| **appid** | 整数型 |是| 软件id,在后台查看 |
| **timestamp** | 长整数型 |是| 时间戳,相差不能大于30秒,否则提示请求已过期 |
|**data**|文本型|是|重要数据包,传入前先用safeCode加密,没加密前是JSON对象,对象属性因不同接口而不同,请看实际接口的文档,加密方法请看下面|
|**sign**|文本型|是|参数md5签名,作用是防止篡改参数,签名方法请看下面|
|**token**|文本型|否|与cookie功能一样,使用token则可以不用cookie,二者选一,如两者共存,后端则用token|
**`请求方式:`** POST
# **接口响应格式**
**`例如:`**
```
{"data":"28D2DDEB8B106D95422E6CEE1B399A807FAEBA4E061F7D6CC7D7A2D22AE9E0C8F880DD7078AB967745AC","msg":"","status":1,"token":"b64e2dad-5ac1-455a-bf88-db5290342857"}
```
**`属性描述:`**
| 属性名 | 类型 | 说明 |
| --- | --- | --- |
| **status** | 整数型 | 系统状态码,appid不对、签名错误、请求过期等等错误反馈到此属性,详情见status表|
|**msg**|文本型|系统提示信息,一般情况返回空文本,status非0才有|
|**token**|文本型|此属性初始化返回才有,实际上是cookie里session id,给其他业务接口传入|
|**data**|文本型|重要数据包,status为1才有,返回是密文,要用customCode解密,解密后是JSON对象,对象属性因不同接口而不同,请看实际接口的文档|
# **请求data加密**
data原来是JSON对象,明文传输是不安全的,使用开源的RC4算法加密,密钥是该软件的`安全码`,在核盾后台软件列表查看。看下面加密效果。代码写法请参考[核盾论坛](http://bbs.5yyz.com/forum.php?mod=forumdisplay&fid=39)给出的例子。
密钥:`420581317`
加密前:`{"api":1,"userName":"112","password":"112","verifyCode":"","machineCode":"0"}`
加密后:
```
00B1E2614920F33EEA9E7A53CE82A80D76B297393F77195174F5BD0907451EB88EEF567C8AC475AECAB4370BA82C5A75A9EB2D3F91C8EA72C71BBAECC09D36AE1A8DF43214548ED90945FA89C3
```
# **响应data解密**
data原来是JSON对象,明文传输是不安全的,使用开源的RC4算法解密,密钥是该软件的`自定义码`,在核盾后台软件列表查看。看下面解密效果。代码写法请参考[核盾论坛](http://bbs.5yyz.com/forum.php?mod=forumdisplay&fid=39)给出的例子。
密钥:`123`
解密前:
```
28D2DCED811126C117533BA65C76D3D671B6FBF4A8C09A8427427D79832D63D0F6115CD3A9754AB0ED781C33CC064848D7C75DF7E4D30007BBE741
```
解密后:
```
{"code":208,"msg":"帐号已过期!","timestamp":1549448450434}
```
# **请求参数签名**
`参数签名 = md5(appid + safeCode + timestamp + data密文)`
参考签名的顺序不能乱,签名后文本不区分大小写
# **注意事项**
* UserApi任何一个接口都是固定格式,如本页文档定义,唯一变的是data对象里的属性。
* c1.5yyz.com域名是强制设置请求头引用页,Referer: *.5yyz.com/UserApi,否则返回403。
* 请求头内容类型要设置表单提交和设置编码GBK,Content-Type: application/x-www-form-urlencoded; charset=GBK
* 请求头可以不附加cookie,但是要url要带token,二者选其一
* c1.5yyz.com域名是https,之前用户老问我用http还是https,对于UserApi接口不必纠结,因为请求本来是加密的。(用http减少核盾运营成本,https另外购买的)
- 产品说明
- 免责声明
- 接入方式
- 视频教程
- 更新日志
- SDK 接口
- 返回值说明
- 内存
- RandMe
- MemoryInitialize
- DrvReadData
- DrvWriteData
- 保护盾
- LoadHDDrive
- HideModule
- HideProcess
- ProtectMemory
- ProtecWindow
- ProtectProcess
- 进程
- MemoryMapping
- KillProcess
- 其他
- Ver
- GetLastError
- 验证接口
- CreateHdObject
- _加载核盾DLL到内存
- SetDomainName
- SetSoftware
- Initialize
- GetInfo
- Login
- GetData
- Probation
- Heartbeat
- ModifyPassword
- Unbind
- Recharge
- GetVerifyCode
- Register
- TelnetFun
- ClearCache
- SetMachineCode
- SetData
- Query
- Exit
- ValidateQQ
- ValidateQqGroup
- RPC_加载DLL到内存
- RPC_Ver
- RPC_Call
- RPC_ClearCache
- RPC_GetData
- RPC_SetPort
- RPC_StartService
- RPC_TelnetFun
- 常见问题
- 到期时间
- 调试
- 语言、例子
- 进程通信
- WebApi 接口
- status说明
- Initialize
- Login
- Probation
- UnBind
- Register
- Recharge
- ModifyPassword
- UserCode
- Heartbeat
- TelnetFun
- Set
- Get
- Exit
- UserApi 接口
- 接口简介-★必看★
- status表
- Initialize-初始化
- Login-帐号登录
- CardLogin-卡密登录
- Trial-试用登录
- UnBind-帐号解绑
- Register-注册帐号
- Recharge-帐号充值
- ModifyPassword-修改密码
- Heartbeat-心跳
- TelnetFun-远程函数
- UserVcode-验证码
- Query-简单查询
- Get-取登录数据
- Set-设置用户数据
- Exit-退出登录
- 后台
- 远程函数
- 行为日志
- 软件列表
- 添加卡密
- 用户软件
- 卡密用户
- 云端加盾
- 简介
- 自定义界面
- 常见问题
- 云壳SDK
- SDK简介
- GetData
- GetLastMsg
- Heartbeat
- TelnetFun
- 资源下载
- 易语言
- UserApi单码登陆源码
- UserApi普通登陆器源码
- 内存加载版登陆器源码
- WebApi登陆器源码
- C++
- UserAPI C++调用例子
- VC版调用例子
- C#
- 内存加载版调用例子
- WebApi例子调用(界面很炫)
- WebApi调用完整例子
- 其他
- 核盾DLL 6.0
- 查询卡密
- 核盾云壳动态SDK
- 进程间数据通信例子
- 核盾模块-保护盾
- 核盾模块-驱动读写内存
- 核盾模块-强力暂停指定线程
- 核盾模块-强力线程注入DLL
- 核盾模块-Q群验证
- PHP调用核盾webapi初始化示例
- 工具
- VMP扩展版
- 多功能注入器,开发必备工具
- 云端加盾自定义界面浏览器
- 常见问题
- 使用c1.5yyz.com域名问题
- 业内最强大的远程函数功能
- 使用远程函数进行数据加解密