• 5465阅读
  • 1回复

[供]根哥windows逆向工程培训班第六期招生中 [复制链接]

上一主题 下一主题
离线根哥
 

发帖
3
金钱
10910
威望
11910
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 2024-12-10
— 本帖被 liyimiao 执行取消锁定操作(2026-02-06) —
2020.5~2021.5 第1期<软件逆向工程特训>历时12个月 p)Q='  
2021.5~2022.7 第2期<软件逆向工程特训>历时14个月,目前已圆满结束,第3期增加了一些新的内容,老师高超的技术水平+周到的交流辅导服务,这可能是最好的线上windows逆向安全培训班! X15e~;&  
2022.9-2023.10 第3期 u|8V7*)3  
2023.10-2025.3 第四期 V,9UOC,Gn  
2025.2-2026.2  第五期(快完结) DOo34l6#  
2026.4 第六期招生中。。 F[|aDj@q e  
\h/aD1 &g  
My >{;n=}  
逆向工程存在于各行各业,于IT行业来说,无论是开发还是安全,软件逆向一直充斥着重要的作用,学习软件逆向可以更好的理解甚至反推软件的设计框架、原理、实现思路、解决方案以及软件的操作行为,也是为了更好的做相关正向开发、软件安全和病毒分析,同时也需要掌握很多相关的技术知识点,难度较大,正因如此,逆向工程师人才紧缺,供不应求,薪资待遇处于IT业顶峰! 认真学习本课程、多与老师交流并加以实践将能达到就业水平。 r#.\5aQ t  
互联网已经全面渗透于各行各业,逆向工程将关系到众多企业乃至国家的安全,所谓懂进攻知防守,精易作为国内最具影响力的PC软件开发社区之一,将带领大家从开发到安全,从正向到逆向,为社会和国家输出更多的安全人才。 $VE=sS.  
课程会着重对基础知识及原理的加固,让大家能够循序渐进,知其然和所以然,课程中将穿插大量的实例和项目以及每节课都会布置作业,只要跟着老师的学习路线,不懂就问,经过1年的实践,定会有所成就。 Qgv-QcI{  
8J7<7Sx  
开课日期        培训周期        教学模式        教学费用 (联系方式:QQ 727446985) T;I>5aQ:q4  
1年左右        直播+录播,周一~周五晚上2小时讲课+2小时答疑交流,白天通过QQ群/群语音交流        32000 限时惊爆价10600元 +Y^/0=6h  
c/}bx52>u  
a _(vpD^  
第一章 进制、寄存器与汇编指令(汇编与C语言相结合)   3000元 Yyh X%S%  
学习汇编能做什么(逆向,游戏安全,加固/脱壳,反病毒,漏洞挖掘等等必备基础) {wf e!f  
1.1   计算机的基本构造及其运行原理 T*C]:=)  
1.2   不同进制的书写方法 k!,&L$sG  
1.3   为什么计算机要用二进制 bl B00   
1.4   不同进制间如何运算1 xqzdXL}  
1.5   不同进制间如何运算2 @xtfm.}  
1.6   为什么要用十六进制 +l$BUX  
1.7   什么是逻辑运算 \.dvRI'  
1.8   计算机的计数与数学计数的区别 bxg9T(Bj  
1.9   谁能告诉我计算机有多少通用寄存器 ddjaM/.E  
1.10  安装VC2012/VC6,写简单的汇编 F0FF:><  
1.11  怎么操作汇编指令 C}GOwvAL>  
1.12  什么是内存 )![? JXf  
1.13  寄存器与内存有什么区别 5AT[1@H(_  
1.14  怎么把[ ]里面的值变成地址 X6@G)68  
1.15  堆栈的作用。 '.DFyHsq  
1.16  函数的调用过程1 D7x"P-ie  
1.17  函数的调用过程2 ygp NMq#?X  
1.18  汇编指令运算过程中,出现进位借位,或者溢出该怎么办 tm}0kWx  
1.19  对寄存器ESI或者EDI操作的指令有哪些 -z4pI=  
1.20  指令和内存有什么联系 S(*SUH  
1.21  如何用汇编写程序 %,*{hhfu  
1.22  逆向的起源。什么是内存框架 MY}B)`yx=  
1.23  用汇编怎么调用函数 o;@T6-VH  
1.24  不用CALL指令,如何调用函数 7l3sd5  
考试:用汇编写一个程序 P\CT|K'P  
f?A*g $v  
4jl-?  
第二章 C语言(软件开发必备)       2500元 # }!Ge  
2.1 C语言有哪些规则,如何赋值 {)0"?$C_H  
2.2 什么是C语言表达式 E|d 8vt  
2.3 “如果”代表C语言的哪条语句 ZjXpMx,  
2.4 “如果明天下雨,我不去逛街”该如何用C语言表达 s k_Q\0a  
2.5 假设(a*4)怎么用移位表达,a向哪边移,移多少 !N1DJd  
2.6 C语言有哪些循环语句 e'zG=  
2.7 C语言for 语句该如何使用 }A`4ae=  
2.8 什么是C语言变量 $/Q*@4t  
2.9 “现在有相同类型的100个变量”,怎么用一条C语句实现 <J QvuC  
2.10 什么是二维数组,二维数组跟一维数组有本质上的区别吗 #Hr>KQ5mJQ  
2.11 C语言结构体是什么 H?>R#Ds-  
2.12 怎样合理的运用C语言结构体  + >oA@z  
2.13 C语言变参函数有什么作用 h>+,ba"D  
2.14 深刻理解switch 语句1 F|XRh6j  
2.15 深刻理解switch 语句2 xV4 #_1(  
2.16 C语言宏定义有什么好处 !7lS=D(?  
2.17 什么是C语言指针, 指针是怎么赋值的 _0<EbJ8Z  
2.18 C语言指针和数组有什么区别 FHS6Mk26  
2.19 C语言指针是有符号的,还是无符号的 sc^TElic  
2.20 “void a ;” 这样定义可以吗?什么是空指针 5[Yzi> o[  
2.21 指针数组和数组指针分别代表什么 64>o3Hb2  
2.22 指针数组和数组指针的区别在哪里 z\8Kz ]n~  
2.23 怎样定义C语言函数指针 *.J)7~(P  
2.24 C语言函数指针有什么作用 jdGoPa\  
2.25 数据结构之单链表 Vn6g(:\w  
2.26 数据结构之双链表 j9YI6X"  
2.27 数据结构之数组 C<\|4ERp  
2.28 数据结构之队列 -Ug  
2.29 数据结构之二叉树 g3(fhfR'RN  
项目:学生管理系统或者贪吃蛇小游戏 l(@UpV-  
O&?i8XsB  
O#E]a<N`  
第三章 C++与MFC/逆向练习    4000元 ^U.8grA  
3.1 结构体与类有什么区别 !;^sIoRPV  
3.2 封装之this指针的本质 nDS mr  
3.3 构造函数和析构函数 n%]1p36  
3.4 继承有什么好处 0BM3:]=wr  
3.5 多继承与菱形继承 A-&C.g  
3.6 纯虚函数和虚函数 [ENm(e$sI  
3.7 多态与虚函数有什么联系 Nj_h+=UE!  
3.8 虚继承以及析构调用虚函数  T^ ^o  
3.9 函数重载的妙用 S& % G B  
3.10 什么是运算符重载 ?j{LE- (  
3.11 模板是怎么运用的 nTweQ  
3.12 类模板以及命名空间 &JM|u ww?1  
3.13 容器之string *;wPAQE  
3.14容器之vector d3# >\QCD9  
3.15 容器之deque wTGH5}QZ+  
3.16 容器之list 7W6tz\Y  
3.17 迭代器的用法 | *Dklo9{  
3.18 输入流和文件流 %W=S*"e-  
3.19set map k ckWBL  
3.20 stl之 元素计数以及最小值 MkG3TODfHB  
3.21 函数对象和一元谓词 ?1Lzbou  
3.22stl之 查找 删除 }^;Tt-*k  
3.23 C++异常 bBBW7',[a  
3.24 一个Win32程序的执行过程(消息机制的本质) Ms.1RCup  
3.25 win32之创建显示窗口 fYR*B0tu  
3.26 win32之消息派发流程 ((TiBCF4  
3.27 win32之消息循环及消息函数 G_{x)@  
3.28 win32 对话框消息流程 t3.;W/0_  
3.29 MFC与Win32程序的关系 Lmx95[#@a  
3.30 MFC类层次结构以及消息流程 {(i>$RG_  
3.31 操纵控件的几种方法 ,25Qhz]  
3.32 MFC之对话框 T<"Hh.h  
3.33 MFC之菜单 N246RV1W  
3.34 MFC之画图 0Kxc$c  
3.35 MFC之文本操作 WUSkN;idVG  
3.36MFC之单文档和多文档 j^}p'w Tu{  
3.37 C++版本超市管理系统 pDO&I]S`q0  
& Me%ZM0  
8o-*s+EY"&  
数据库:(新增) NuKktQd  
1. 数据库的基础 :yo tpa  
2. 关系数据库的基础 mYf7?I~  
3. 表的管理和数据类型 '-tiH  
4. 基础查询 r<38; a  
5. 创建表,添加和删除 E=.4(J7K  
6. 数据库设计 4~8++b1/;  
7. 创建数据库 _4VF>#b  
8. 存储过程 j()<.h;'  
9. 触发器 't:|>;Wx  
10. 事务 ,c#=qb8""  
11. 锁 .olDmFQD  
12. 数据备份和恢复 4hep1Kz%  
13. 数据库的安全性 b/:&iG;  
8r7~ >p~  
gwtR<2,p  
SOCKET编程:(新增) 1H{M0e  
1. 什么是 socket Nh7+Vl  
2. Internet 套接字的两种类型 |'xVU8  
3. 网络理论 st"uD\L1p:  
4. 结构体 RfVVAaI  
5. 本机转换 > Q+Bw"W<  
6. IP 地址和如何处理它们 y| *X  
7. socket()函数 lL.3$Rp;  
8. bind()函数 )'BuRN8  
9. connect()程序 c0.i   
10. listen()函数 fJ_d ,4  
11. accept()函数 ;ZMm6o  
12. send() and recv()函数 \*Ro a&<!  
13. sendto() 和 recvfrom()函数 g z-X4A"  
14. close()和shutdown()函数 V )CS,w  
15. getpeername()函数 SR@yG:~  
16. gethostname()函数 n$n)!XL/  
17. 域名服务(DNS) !sA[ A>  
18. 客户-服务器背景知识 O)78 iEXi|  
19. 简单的服务器 _Gv[ D  
20. 简单的客户程序 I;]Q}SUsm  
21. 数据包 Sockets j_\nsM7  
22. 阻塞 v`ckvl)(C  
23. select()–多路同步 I/O b13XHR)0  
?z>7&  
E?1"&D m  
逆向练习: c|8[$_2  
1. OD和IDA的基本用法 C 7)w8y  
2. C语言全部语法逆向 (he cvJ  
3. C++全部语法逆向 z yyt`  
4. 按钮以及其他控件的入口方法 @~v |t{G  
5. 逆向窗口程序的通杀方法 jEwfa_Q%  
练习:SOFTICE核心文件逆向 zi7,? bD  
Sq"O<FmI  
#?/&H;n_8S  
第四章 汇编编码     3000元 Y;yt m #=  
学习硬编码的好处:(HOOK函数,系统HOOK, 代码变形,VM还原,TMD还原,解释器,调试器必备基础,这就是杀毒软件可以横行的法宝) ^a&-GhX;  
机器码,简称汇编编码,俗称硬编码 #jAlmxN  
4.0 寄存器 (32位汇编;64位汇编) &eYnO~$!  
4.01 汇编指令 @C]] VE  
4.02 堆栈 X_yAx)Do  
4.03 逆向框架 TxL;qZRY ^  
4.04 函数内部运行机制 CPssk,q~C  
4.1  定长编码 (0x40-0x4f  0x50-0x5f  0x70-0x7f  0x0f 0x80 – 0x0f 0x8f) }!=}g|z#|  
4.2  定长编码(0x04-0x07  0x0c-0x0f  0x14-0x17  0x1c-0x1d  0x24-0x27  0x2c-0x2d  0x34-0x37  0x3c-0x3d.) qP6 YnJWl  
4.3  定长编码 (0x60 0x61 0x90-0x97 0xa8 0xa9 0xb0-0xbf  0xc2 0xc3 0xcc 0xcd 0xd4 0xd5 0xe0-0xe3 0xe8 0xe90 0xf8-0xfd等等) bi`{ k\3A  
4.4  硬编码4 (写程序把定长编码打印出来) by z2u  
4.5  硬编码5 (写程序把定长编码打印出来) S&]AIG)  
4.6  变长编码  (0x88 0x89 0x8a 0x8b) o";5@NH  
4.7  变长编码  (0x88 0x89 0x8a 0x8b) *"4d6  
4.8  变长编码  (0x00-0x03 0x08-0x0b 0x10-0x13 0x18-0x1b 0x20-0x23 0x2b-0x2b 0x30-0x33 0x38-0x3b ) tW4|\-E"s4  
4.9  变长编码 (0x84-0x87 0x8c-0x8e 等等) EHk(\1!V  
4.10 写程序把变长编码打印出来 cNX,%  
4.11 写程序把变长编码打印出来 %c[Q_  
4.12 写程序把变长编码打印出来 QJ2V&t"3  
4.13 前缀 (0x26 0x2e 0x36 0x3e 0x66 0x67 0xf0 0xf2 0xf3) d4OWnPHv&}  
4.14 写程序处理前缀 egcJ@Of  
4.15 写程序处理前缀 "J|_1!9  
4.16 组编码 (0x80-83  0xc6-0xc7  0xd0-0xd3 等等) $89hkUuTu^  
4.17 写程序处理硬编码 q3a`Y)aVB  
4.18 0F开头两个字节的编码 tHlKo0S$0  
4.19 编写反汇编引擎 s ~'><ioh  
4.20 VMP的核心解释器基本原理 y5;l?v94  
[J4 Aig   
项目:反汇编引擎,解释器框架 XRi/O)98o  
P70\ |M0~y  
"/ G^+u  
第五章 Win32 API (只要是项目,都会调用API)    2500元 ~ZbEKqni2  
5.1 文件操作 VJ1(|v{D4[  
5.2 内存管理 r[>4b}4s  
5.3 进程线程 KUs\7Sb  
5.4 线程同步 $FV!HD  
5.5 进程间通信 TEC'}%   
5.6 网络通信  wfr+-  
5.7 未公开API的使用 NHKIZx8sR  
n3w(zB  
MRzrZZ%LQ  
第六章 PE     3500元 Q "UWh~  
学习PE的好处(加密解密,写壳,脱壳,注入,重载操作系统) 29P vPR6  
6.1  PE有哪些结构1 cR.[4rG'  
6.2  PE有哪些结构2 +3B^e%`NPm  
6.3  为什么要有节表,节表有什么好处 &w@~@]  
6.4  PE 磁盘拷贝到内存 (写程序) ' _)NI  
6.5  PE 内存拷贝到拷贝磁盘,存盘(写程序) L`E^B uP/  
6.6  怎么给PE添加一个节 V_Owi5h  
6.7  PE扩大节有什么好处 Z]-C,8MM  
6.8  PE合并节有什么作用 NPjh2 AJm  
6.9  PE 输入表 (写程序打印输入表) hZ_0lX}  
6.10  PE 输入表 (写程序打印输入表) ^zjQ(ca@"x  
6.11  PE 输出表 (写程序打印输出表) 4 j9  
6.12  PE 输出表 (写程序打印输出表) a o_A %?Ld  
6.13  PE 重定位表 QIl![%   
6.14  修改OEP 弹出MessageBox 2p3e p,  
6.15  添加节,拷贝一段函数进去 +^!;J/24  
6.16  病毒的框架 HD"Pz}k4  
6.17  病毒是如何在函数入口植入的 -~z]ut<Z  
6.18  病毒是如何写入PE的 1QHCX*_  
6.19  DLL应用及书写方式 {4u8~whLp  
6.20  UPX壳的源码及其运用 TUeW-'/1  
6.21  加密壳原理和方式 e~7h8?\.q  
项目: 手写PE分析工具LoadPe qkX}pQkG)h  
s':fv[%  
joaf0  
进阶篇 nv WTx4oy  
先复习 前面的基础篇的知识,然后写一个解释器完整版(20天) XRU^7@Ylks  
4 I}xygV  
第七章 保护模式(段寄存器)(2个多月)  5000元 n7UZ&ab  
7.1 段寄存器构成 AEx|<E0  
7.2 保护模式 GDTR IDTR UPtWj8h  
7.3 GDTR,IDTR均为48bit结构体 Q8:`;W  
7.4 超线程与多核 { bjK (|  
7.5 保护模式 获取段寄存器的值 ni @Mqb  
7.6 保护模式 GDTR.ATTRIBUTES Mv9q-SIc[  
7.7 保护模式之修改段寄存器 G/tah@N[7  
7.8 保护模式  调用门 _H#l&bL@C  
7.9 保护模式 中断门 陷阱门 -!]Ie4"  
7.10 保护模式 CS:EIP 5fGUJ[F=  
7.11 保护模式  RETF,IRETD Y,1s Ng  
7.12 保护模式  门Dword Count 8 jom)a  
7.13 保护模式  任务门 VKa -  
7.14 保护模式  3环进1环 =}@m$g  
7.15 保护模式 10-10-12 分页 F12tOSfu*  
7.16 保护模式 PDT PTE QInow2/u  
7.17 保护模式  页的特点 Bsm>^zZ`YU  
7.18 保护模式  TLB ,l[h9J  
7.19 保护模式  异常与保护 @d5G\1(%  
7.20 保护模式 2-9-9-12 z?~W]PWiZ  
7.21 保护模式 CR0~CR4 Iq&S6l <0  
7.22       10-10-12和2-9-9-12分页转换 D} Jhg`9  
7.23-7.30 编写CE与内存搜索工具(VT引擎) $#V ^CmW.  
:sT\-MpQvn  
<,S0C\la=  
第八章 操作系统 (本阶段较枯燥,将通过录播+直播答疑的方式进行)   5000元 Y~=]RCg  
本章主要讲解及应用于:驱动保护,系统保护,游戏保护,底层开发,系统架构,架构师,引擎开发等… [oOA@  
8.1 操作系统 模拟线程切换 ?Z}n0E `  
8.2 操作系统 进程线程结构 o!Vs{RRu}  
8.3 操作系统 进程线程链表 ag6hhkj A  
8.4 操作系统 TEB PEB xJ"CAg|B  
8.5 操作系统      kpcr 结构 p{:r4!*L  
8.6 操作系统      TrapFrame 结构体 U].u) g$  
8.7 操作系统      SSDT 表 phIEz3Fu/  
8.8 操作系统      驱动详解 y]OW{5(  
8.9 操作系统      swapcontext函数 T7W*S-IW  
8.10 操作系统      SwapContext函数 {Kp<T  
8.11操作系统       ntReadVirtualMemory PPCZT3c=  
8.12操作系统       kiSwapThread A:"J&TbBx  
8.13操作系统       kiWaitListHead 5- Q`v/w;  
8.14操作系统       对象句柄及线程等待快 %]9 <a  
8.15操作系统       线程等待机制 .ON+ ( #n  
8.16操作系统       等待块及SetEvent 函数 a7G0  
8.17操作系统       keWaitSingleObject函数 zdA:K25"  
8.18操作系统       APC机制 c`UJI$Q/  
8.19操作系统       kiDeliveApc M4a- +T"  
8.20操作系统       Apc函数的调度时机 K7&A^$`  
8.21操作系统       异常处理 bTzVmqGY  
8.22操作系统       kiDispatchException函数 s) ]Z*#ZZ  
8.23操作系统       3环异常处理过程 _q([k_4h  
8.24操作系统       回调机制 cK.T=7T  
8.25操作系统       句柄 S fE^'G\  
8.26操作系统       对象句柄 :=#*[H  
8.27-3.41项目(内核重载) SU, t,i  
8.42操作系统      调试机制 k fx<T  
8.43操作系统       Debug_Object 结构 AR\?bB~`c  
8.44操作系统       创建调试对象函数 [c?']<f4  
8.45操作系统       发送调试消息函数 S3"js4a  
8.46操作系统       DbgKpSendApiMessage 函数 ZyqTtA!A  
8.47操作系统       调试寄存器 0y4z`rzTn  
8.48操作系统       挂钩DbgKpSendApiMessage zE V J  
8.49操作系统       文档视图 t` {^gt  
8.50操作系统       消息机制 3Lwl~h!  
8.51操作系统       消息机制 dG{`Jk  
8.52操作系统       消息机制 fM]McZ9)D  
项目(3环调试器) nLq7J:  
.rj FhSr$  
第九章 64位逆向(新增) 2tvMa%1^  
X64 汇编基础(一个半月) t" 1'B!4  
      64位逆向是根据学员的需求添加的课程,比之32位逆向,有了一点点改动,但是大致语法是不变的 1Oo^  
      首先内存地址变成64位,寄存器的大小和栈的基本单元也变成64位 hoASr j{s  
      然后通用寄存器 (新增了R8~R15寄存器) !x.^ya  
      函数调用约定: 64位统一为一种变形的fastcall,64位的fastcall中最多可以把函数的4个参数存储到寄存器中传递 RCX,RDX,R8,R9等等 9E _C u2B  
      本章的目的:带领大家熟悉64位下的各种语法结构,熟练的掌握64位逆向,为以后的64位逆向分析打下基础 pj,.RcH@o  
:>lica_  
R<mLG $  
1.  安装环境 z;x `dOP  
2.  64位寄存器(RAX-R15,xmm0-xmm15) `4s5yNUi=  
3.  rsp和堆栈平衡 <p(&8P  
4.  x86和x64的调用约定(RCX,RDX,R8 R9) Pf oAg*  
5.  x64的指令解析(JMP, CALL) =$5[uI2  
6.  X64的运算符解析 zY8"\ZB  
7.  X64的函数分析 r @~T}<I  
8.  X64的局部变量和全局变量 -"5x? \.{m  
9.  X64的控制语句 ~4Is   
10.  X64的分支语句 S[UHx}.  
11.  X64 do while和while循环 [Dq7mqr$  
12. x64 for循环 lwLK#_5u  
13. X64的数组 ] K7>R0  
14. X64 封装,继承 ~c!zTe  
15. X64 单冲继承虚表和多重继承虚表 S>7Zq5*  
16. x64位游戏分析 =ox#qg.5  
17. X64游戏人物血值以及基地址 xiU-}H'o  
18. X64人物和NPC vII&v+C  
19. X64怪物数据 CGg:e:4  
20. X64游戏数据结构分析  1$idF  
21. X64游戏内存读写 uqZLlP#&#  
22. X64注入方法 XzQ=8r>l  
23. X64自动打怪分析 c> K/f7  
PKC``+K i  
毕业设计 /#$bb4  
1.xuetr 内核工具开发 0c1}?$f[?%  
2.驱动级的任务管理器 TMG:fg&E~  
3.逆向调试各类exe软件成汇编代码或伪C源码 )iy>sa{  
4.病毒分析、木马分析、软件后门检测、病毒修复工具开发 <Q=ES,M  
5.软件加密与破解 &F\J%#{  
6.游戏安全/游戏的技术攻防分析、多开/防多开、游戏驱动检测、游戏安全 6f=/vRAh$  
7.软件HOOK技术分析 p'k stiB  
8.给成品软件增加菜单/功能等插件
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.cc,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。
 
离线liyimiao

发帖
684
金钱
102054
威望
102431
贡献值
20063
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 沙发   发表于: 2024-12-10
首页分类间 3个月 2024.12.10
广海社区唯一联系人QQ:190959022,谨防假冒。