申 请会员 I D:YuJia7777
申 请 I D:YuJia7777
个人邮箱:859904850@qq.com
原创技术文章:逆向工程——从分析到流程图至破解
-========================================================-
文章出处:CSDN
文章链接:https://blog.csdn.net/qq_40590152/article/details/84581877
网站登陆截图:
文章只供研究用 其他用途概不负责 有问题请私密软件名称: 天泽医院收费管理系统软件来源: 目标模块:登录 注册 重启验证工具:OD(单分支执行)——IDA(详细分析)——PEiD(初步扫描)——Procmon(监控程序操作)前言:一个合格的逆向从事者或者研究者,在我看来不管程序安全机制完善度有多高,都应该拿出自己最高的技术标准去对待程序的操作行为是未知的,而你是探索这个黑盒的人,留个心眼总会给你带来安全感。 OD动态分析需要干什么: 打开:CreateProcess创建调试进程—接受调试事件 PS:因为资料缺陷以及本人比较懒,感兴趣的朋友可以私下分析
附加:注册窗口类—Createsorteddata创建进程表—填充进程表(详细请参考百度文章(https://wenku.baidu.com/view/0bd24c1d10a6f524ccbf8538.html)—OpenProcess打开目标进程—填充进程表—CreateWindow创建窗口—DebugActiveProcess调试器捆绑OD常用分析方法(附加):开发者稍微有点安全意识都会做防破解 壳——压缩壳这个感觉没啥好说的,使用PE变形技术对PE进行瘦身,嵌入代码到目标程序(修改程序OEP至嵌入的代码在接上程序本身代码),嵌入的代码作用为还原(针对使用的PE瘦身技术进行还原)壳——加密壳VMP:主要分为两个版本 3.0以上或3.0以下 3.0以下的反反调试/脱壳/技术已经成熟 。 (相对不安全)3.0以上的版本因为公开资料等等原因相对比较复杂。 (相对安全) PS:目前国内的几个团队自动化已经成功 ,公开资源已经有过反调试等脚本流露出来壳——压缩+加密(多层壳)外壳/里壳/壳中壳 (麻烦) PS:单层壳会脱 多层就不会了?字符串加密 反调试 守护进程修改SSDT入口实现的HOOK技术 PS:SSDT分为两种基于Win32k.sys的SSDT以及常规SSDT
PS:本文章的重点不再这里,所以就不详细解释了!!!
正文:
程序预览
https://img-blog.csdnimg.cn/20181129182411134.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70登陆data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129182452488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70软件功能data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129182550992.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70注册data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
判断开发语言—加壳情况
https://img-blog.csdnimg.cn/20181129185344882.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70查壳data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129185423772.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70节表data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
根据节表的信息判断为无壳 VB语言开发
首先附加程序——断下关机 格盘等API
https://img-blog.csdnimg.cn/20181129193817677.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70OD加载停留处data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
判断一下PEiD的识别是否准确
在IDE程序开发中一般会有重定位属性 所以根据Base Address+Offset获得程序入口地址
https://img-blog.csdnimg.cn/20181129194418795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70程序入口data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
根据VB入口特征 以及OD反馈信息 确定PDiD识别准确 VB开发
定位登陆模块的方法
1:根据字符法+回溯法获得
2:根据按钮事件脚本获得
3:根据特征码(816C24)获得
https://img-blog.csdnimg.cn/2018112920023149.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70按钮事件data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
开始定位模块地址
https://img-blog.csdnimg.cn/20181129201004506.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70判断账号data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
调试阶段——修改标志位,反向跳转
https://img-blog.csdnimg.cn/20181129201627579.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70跑飞处data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
跟踪到此,程序跑飞掉,恢复所有线程,继续跟踪。
https://img-blog.csdnimg.cn/20181129203741322.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70密码判断data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129203921330.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70密码错误data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
修改标志位,反向跳转
https://img-blog.csdnimg.cn/20181129204149379.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70登陆成功data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
登陆模块破解完毕
定位注册模块的方法
1:根据字符法+回溯法获得
2:根据按钮事件脚本获得
3:API钩子
https://img-blog.csdnimg.cn/20181129210528643.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70判断注册名长度data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
VbaStrcmp 比较两个字符串
VbaFreeStr 释放出字符串所占的内存
VbaFreeObj 释放出VB一个对象
VbaVarDup 复制变量
4个函数的功能 从正向来说 你会干嘛?
判断串——释放内存——释放对象
这串信息会给我们分析提供很大的帮助 既然提示“注册名不允许为空”肯定是判断了长度了既然如此 我们肯定也能在这里得到注册名正确的长度,不过在这里我们先执行破解摸清楚大概的程序走向!!!
https://img-blog.csdnimg.cn/20181129212643317.png假码data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129212703403.png真码data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181129212746985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70判断序列号data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
我们记住“48D070”这个地址 看是谁对这个地址进行了写入操作在顺藤摸瓜就能找到算法Call了
https://img-blog.csdnimg.cn/20181129213815656.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70注册成功data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
一般来说到这里来说 程序的注册模块基本宣告破解完毕,但是真的如此么?开发者真的一点保护都没做?
在查壳阶段没看到加壳分析的过程中也没碰到反调试/关键数据加密/这种时候就要留个心眼了,大家都是聪明人 别降低大家智商!!
伪注册
重新打开程序我们发现依然提示未注册 ,按照正向的思路
打开用户输入的序列号/注册码文件——调用算法模块——跟用户文件内容比较——根据结果做出相应反应
按照这种思路,我们之前的破解分析工作都白费了? 这是错误的思想 起码我们摸清楚了注册模块,这种伪注册也只是重新验证了一次而已,我们在把它干掉不就好了。逆向分析/破解的日常中这是很正常的,文章开头提出的黑盒就是这个意思,你不知道它到底是个什么流程,你只能碰见一个问题,解决一个问题!!!
https://img-blog.csdnimg.cn/20181201081506929.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70伪注册data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
既然得出了正向思路,我们验证我们的思路
重启验证方法
API
监控软件
https://img-blog.csdnimg.cn/20181201103400892.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70监控操作data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
我们通过监控发现很多操作都是基于MDB数据库的,所以换一条路,通过API来实现
VB程序封装了一层 所以我们不通过Win32API,通过VB的API。 PS:吾爱OD/看雪/爱破解/是很成熟的OD
__vbastrcomp __vbastrcmp__vbavartsteqrtcMidCharVarrtcLeftCharVar__vbaStrCatASC这是比较常见的
https://img-blog.csdnimg.cn/20181201104002670.pngAPI断点data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/2018120110435691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70Strcmpdata:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
断下来且没有弹出注册窗口。说明方法可行,继续跟踪!
https://img-blog.csdnimg.cn/20181201105311201.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70真码data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
再一次出现真码 我们细心分析后续操作
VbaStrMove
72A26C30 >56 push esi ; 天泽医院.0048D07072A26C31 8BF1 mov esi,ecx ; 天泽医院.0048D07072A26C33 57 push edi72A26C34 8BFA mov edi,edx //Edi=真码(0069172C)72A26C36 8B06 mov eax,dword ptr ds:72A26C38 85C0 test eax,eax72A26C3A 74 07 je short msvbvm60.72A26C43 //ZF=172A26C3C 50 push eax72A26C3D FF15 F4199472 call dword ptr ds:[<&OLEAUT32.#6>] ; oleaut32.SysFreeString72A26C43 893E mov dword ptr ds:,edi //DS:=0069172C72A26C45 8BC7 mov eax,edi //Eax=真码(0069172C)72A26C47 5F pop edi72A26C48 5E pop esi ; 天泽医院.0048D070data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
真码被复制到了DS:
0046F292 .8B15 70D04800 mov edx,dword ptr ds: //Edx=真码0046F298 .8B45 D8 mov eax,dword ptr ss:0046F29B .8995 48FFFFFF mov dword ptr ss:,edx //真码入栈 0046F2A1 .8D55 AC lea edx,dword ptr ss:0046F2A4 .C785 40FFFFFF>mov dword ptr ss:,0x80080046F2AE .8B08 mov ecx,dword ptr ds: ;msado15.1D70D3E80046F2B0 .52 push edx0046F2B1 .50 push eax0046F2B2 .FF51 54 call dword ptr ds: ;msado15.1D70C3D2data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
真码入栈了 我们可以在细心一点跟踪
vbaVarTstEq
https://img-blog.csdnimg.cn/20181201124919328.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70重启验证—注册码判断data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181201125313948.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70重启验证—注册码判断data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
从表面来看 这似乎是判断真假码了,我们跟进去看下
72A497F6 >FF7424 08 push dword ptr ss: 72A497FA FF7424 08 push dword ptr ss:72A497FE 6A 00 push 0x072A49800 E8 51FEFFFF call msvbvm60.72A4965672A49805 8B0485 A4E69672 mov eax,dword ptr ds:72A4980C C2 0800 retn 0x8data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
https://img-blog.csdnimg.cn/20181201130455716.pngPush真码地址(伪名称)data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
Push真码的地址进了栈,我们继续跟进Call
注意:因为观察栈结构中的数据 实际发现跟想法对不上 ,并且在后续分析中,这两个地址大量出现并且影响着最终注册结果,但是通过观察栈段和数据段,我们发现没有任何的联系。所以我们根据最理想的情况来做假想
call msvbvm60.72A49656
https://img-blog.csdnimg.cn/20181201131107750.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70取真假码地址data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
Eax=真码地址 Ecx=假码地址
https://img-blog.csdnimg.cn/20181201134450602.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70比较数据data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
继续跟踪不管它!
https://img-blog.csdnimg.cn/20181201144215310.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70真假码比较data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
这似乎才是真正的判断?
我们先看下函数
HRESULT VarBstrCmp( BSTR bstrLeft, BSTR bstrRight, LCID lcid, ULONG dwFlags );
bstrLeft 第一个串
bstrRight第二个串
lcid 用于确定是使用UNICODE还是ANSI字符串的程序的语言环境标识符
dwFlags 以下是比较结果标志。
值含义
NORM_IGNORECASE
00000001忽略大小写。
NORM_IGNORENONSPACE
0x00000002忽略非空格字符。
NORM_IGNORESYMBOLS
0x00000004忽略符号。
NORM_IGNOREWIDTH
0x00000008忽略字符串宽度。
NORM_IGNOREKANATYPE
0x00000040忽略假名类型。
NORM_IGNOREKASHIDA
0x00040000
忽略阿拉伯语的kashida字符。
返回代码/值描述
VARCMP_LT
0bstrLeft小于bstrRight。
VARCMP_EQ
1参数相等。
VARCMP_GT
2bstrLeft大于bstrRight。
我们跟进去看下究竟是干嘛的
https://img-blog.csdnimg.cn/20181201145743293.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70真正的比较结果data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
Eax=2 根据MSDN的信息来看,第一个字符串大于第二个字符串。 即:真码大于假码
这么看来先前不明的两个地址 0018FA1C 018FA70是为这个函数准备的即:vbaVarTstEq调用VarBstrCmp及后续的一系列操作需要这两个地址
现在我们继续跟踪 直到返回程序地址段
https://img-blog.csdnimg.cn/20181201151609937.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70注册码比较结果data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
Eax返回值为0 然后又释放掉了字符串变量 看来最终的结尾要来了
https://img-blog.csdnimg.cn/20181201152015130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70注册结果data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
继续修改标志位我们的注册是错误的 即:程序的执行结果,我们需要反着跟
https://img-blog.csdnimg.cn/20181201153102159.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTkwMTUy,size_16,color_FFFFFF,t_70破解成功data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
程序后续还有些操作 但是主要判断已经破解掉 程序已经认为注册码是有效的 所以没继续跟下去。
到这里程序的 登陆模块——注册模块——重启验证模块等都已破解掉
注册机的开发将在另一篇博文
转载请注明出处.........感谢 图片盗链无法显示,给的url地址也无法打开。 因为破解方面的性质 在cn已经删掉了博文 所以无法打开外链图片因为我是直接从cn复制过来的估计也失效了 这篇文章主要用于一家公司 逆向工程师的面试 目前在做面试题{:1_907:} 文章因为cn和博文的一些特殊性质 已经被删除 我也懒得在发了... 主要想混个账号虽然感觉也没啥用... H大也别喷 你也知道 一些真正的高技术都是自己或者团队花时间研究出来 很少有公布出来的 链接已可以打开 私密文章已撤销掉H大看了回复下 我在设置成私密~~~ 抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
ps:过程有些简单,能否再提供更细节分析来申请。
页:
[1]