-
-
Word文档资料管理系统 初步分析!
-
发表于: 2004-10-12 16:10 6341
-
Word文档资料管理系统 初步分析!
==================================================================================
【工程作者】sumica
==================================================================================
【软件名称】Word文档_资料管理系统
【下载地址】http://334420.nease.net
【所受限制】99次限制
【加壳保护】无
【软件介绍】
像我这样的树型结构的文档管理系统在网上有很多,但我觉得都不怎么好用,为什么呢?主要是它们对应的文档编辑功能很
弱;想到现在人们办公的编辑软件主要都采用微软office的word,这样一个新颖的念头在我的脑海中产生了,我要做一个将word做
为编辑器的文档管理系统。Word文档/资料管理系统直接将大家都非常熟悉的Word集成到软件中来,这样Word就成了我的内部
的文档编辑器,由于人们对Word都比较熟悉,使用起来就比较得心应手了
【前 言】此软件网上已经被破解,并且有补丁下载。我只是按我自己的思路写写而已。属于极容易的破解!
==================================================================================
【工程平台】Win 2K
【调试工具】FLY-Ollydbg、WDASM
==================================================================================
【破解过程】
1.当然是用PEID查看,发现target 没有壳(这年头没壳的已经没多见了 ^_^)
2.OD load,用“Ultra String Refence”插件查找”您输入的注册码不正确,请重新输入!“F2下断。
F9运行,跳过密码验证就是注册验证的窗口了,输入测试注册码“78787878”,确定 被拦截下来。
3.看右下脚的 内存窗口,你的机器码、注册码、测试注册码都已经在列。
本机机器码:107984 注册码:103424
==================================================================================
下面用WDASM分析看看:
…… ……
:0059A1C2 E8A5ABE6FF call 00404D6C //跟踪得知 这是关键call 比较注册码是否正确的地方
到这里从OD的右上角,真假的注册码 已经显示出来了
*行内的就是该CALL的内容
****************************************************************************************
:00404D6C 53 push ebx
:00404D6D 56 push esi
:00404D6E 57 push edi
:00404D6F 89C6 mov esi, eax //eax=78787878 (测试码)
:00404D71 89D7 mov edi, edx //edx= 103424 (正确注册码)
:00404D73 39D0 cmp eax, edx //两码作比较
:00404D75 0F848F000000 je 00404E0A //注册码正确就跳出此call
:00404D7B 85F6 test esi, esi //对两个操作数进行按位的'与运算,唯一不同之处是不将‘与’的结果送目的操作数,
//esi=78787878 (测试码) 即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位.
:00404D7D 7468 je 00404DE7 //等于0 就跳到 004040E7
:00404D7F 85FF test edi, edi //对标志位重新置位
//edi= 103424 (正确注册码)
:00404D81 746B je 00404DEE
:00404D83 8B46FC mov eax, dword ptr [esi-04] //eax=78787878 (测试码)
:00404D86 8B57FC mov edx, dword ptr [edi-04] //edx= 103424 (正确注册码)
:00404D89 29D0 sub eax, edx //eax-edx 结果存放在eax中
:00404D8B 7702 ja 00404D8F //大于就跳过 add edx, eax
:00404D8D 01C2 add edx, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D8B(C)
|
:00404D8F 52 push edx
:00404D90 C1EA02 shr edx, 02
:00404D93 7426 je 00404DBB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404DB1(C)
|
:00404D95 8B0E mov ecx, dword ptr [esi]
:00404D97 8B1F mov ebx, dword ptr [edi]
:00404D99 39D9 cmp ecx, ebx
:00404D9B 7558 jne 00404DF5 //进行真假对比
:00404D9D 4A dec edx
:00404D9E 7415 je 00404DB5
:00404DA0 8B4E04 mov ecx, dword ptr [esi+04]
:00404DA3 8B5F04 mov ebx, dword ptr [edi+04]
:00404DA6 39D9 cmp ecx, ebx
:00404DA8 754B jne 00404DF5 //进行真假对比
:00404DAA 83C608 add esi, 00000008
:00404DAD 83C708 add edi, 00000008
:00404DB0 4A dec edx
:00404DB1 75E2 jne 00404D95
:00404DB3 EB06 jmp 00404DBB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D9E(C)
|
:00404DB5 83C604 add esi, 00000004
:00404DB8 83C704 add edi, 00000004
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D93(C), :00404DB3(U)
|
:00404DBB 5A pop edx
:00404DBC 83E203 and edx, 00000003
:00404DBF 7422 je 00404DE3
:00404DC1 8B0E mov ecx, dword ptr [esi]
:00404DC3 8B1F mov ebx, dword ptr [edi]
:00404DC5 38D9 cmp cl, bl \\cl=37('7') bl=31('1') 比较开始位
:00404DC7 7541 jne 00404E0A \\不等就跳 到 ret
:00404DC9 4A dec edx \\记数器减1
:00404DCA 7417 je 00404DE3 \\等于 就条到下面
:00404DCC 38FD cmp ch, bh \\比较第二位
:00404DCE 753A jne 00404E0A \\不等就跳 到 ret
:00404DD0 4A dec edx \\记数器减1
:00404DD1 7410 je 00404DE3 \\等于 就条到下面
:00404DD3 81E30000FF00 and ebx, 00FF0000
:00404DD9 81E10000FF00 and ecx, 00FF0000
:00404DDF 39D9 cmp ecx, ebx \\比较第三位
:00404DE1 7527 jne 00404E0A \\不等就跳 到 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404DBF(C), :00404DCA(C), :00404DD1(C)
|
:00404DE3 01C0 add eax, eax
:00404DE5 EB23 jmp 00404E0A \\跳 到 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D7D(C)
|
:00404DE7 8B57FC mov edx, dword ptr [edi-04]
:00404DEA 29D0 sub eax, edx
:00404DEC EB1C jmp 00404E0A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D81(C)
|
:00404DEE 8B46FC mov eax, dword ptr [esi-04]
:00404DF1 29D0 sub eax, edx
:00404DF3 EB15 jmp 00404E0A
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D9B(C), :00404DA8(C)
|
:00404DF5 5A pop edx
:00404DF6 38D9 cmp cl, bl \\比较第一位
:00404DF8 7510 jne 00404E0A
:00404DFA 38FD cmp ch, bh \\第二位比较
:00404DFC 750C jne 00404E0A
:00404DFE C1E910 shr ecx, 10
:00404E01 C1EB10 shr ebx, 10
:00404E04 38D9 cmp cl, bl \\第三位比较
:00404E06 7502 jne 00404E0A
:00404E08 38FD cmp ch, bh \\第四位比较
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D75(C), :00404DC7(C), :00404DCE(C), :00404DE1(C), :00404DE5(U)
|:00404DEC(U), :00404DF3(U), :00404DF8(C), :00404DFC(C), :00404E06(C)
|
:00404E0A 5F pop edi
:00404E0B 5E pop esi
:00404E0C 5B pop ebx
:00404E0D C3 ret //跳出关键call
**************************************************************************************
:0059A1C7 0F85B1000000 jne 0059A27E //不等于就跳死了 所以这也是关键跳了
:0059A1CD B201 mov dl, 01 //dl=00 输入正确的注册码时
:0059A1CF A1103F4400 mov eax, dword ptr [00443F10]
:0059A1D4 E8379EEAFF call 00444010
:0059A1D9 8BD8 mov ebx, eax
:0059A1DB BA02000080 mov edx, 80000002
:0059A1E0 8BC3 mov eax, ebx
:0059A1E2 E8C99EEAFF call 004440B0
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh" \\从这里看出 软件在注册表建主键,删除该键就可重复试验。
|
:0059A1E7 BAE4A25900 mov edx, 0059A2E4
:0059A1EC 8BC3 mov eax, ebx
:0059A1EE E8ADA5EAFF call 004447A0
:0059A1F3 3C01 cmp al, 01
:0059A1F5 7510 jne 0059A207 \\不相等就跳过了 成功jmp
:0059A1F7 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A1F9 BAE4A25900 mov edx, 0059A2E4
:0059A1FE 8BC3 mov eax, ebx
:0059A200 E8EB9FEAFF call 004441F0
:0059A205 EB2B jmp 0059A232 \\跳到显示成功信息的地方
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A1F5(C)
|
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A207 BAE4A25900 mov edx, 0059A2E4
:0059A20C 8BC3 mov eax, ebx
:0059A20E E8019FEAFF call 00444114
:0059A213 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A215 BAE4A25900 mov edx, 0059A2E4
:0059A21A 8BC3 mov eax, ebx
:0059A21C E8CF9FEAFF call 004441F0
:0059A221 B9C3FFFFFF mov ecx, FFFFFFC3
* Possible StringData Ref from Code Obj ->"run_times" //运行次数的注册表键值
|
:0059A226 BAFCA25900 mov edx, 0059A2FC
:0059A22B 8BC3 mov eax, ebx
:0059A22D E8B6A3EAFF call 004445E8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A205(U)
|
:0059A232 8D55F0 lea edx, dword ptr [ebp-10]
:0059A235 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A23B E8C445ECFF call 0045E804
:0059A240 8B4DF0 mov ecx, dword ptr [ebp-10]
* Possible StringData Ref from Code Obj ->"regist_code"
|
:0059A243 BA10A35900 mov edx, 0059A310
:0059A248 8BC3 mov eax, ebx
:0059A24A E8F5A2EAFF call 00444544
:0059A24F 8BC3 mov eax, ebx
:0059A251 E82A9EEAFF call 00444080
:0059A256 8BC3 mov eax, ebx
:0059A258 E80F98E6FF call 00403A6C
* Possible StringData Ref from Code Obj ->"注册成功!谢谢您的注册,谢谢您对我们的支持!"
|
:0059A25D B824A35900 mov eax, 0059A324
:0059A262 E83D0CEAFF call 0043AEA4
:0059A267 A1A06F5A00 mov eax, dword ptr [005A6FA0]
:0059A26C 8B00 mov eax, dword ptr [eax]
:0059A26E C6801904000001 mov byte ptr [eax+00000419], 01
:0059A275 8BC6 mov eax, esi
:0059A277 E80C11EEFF call 0047B388
:0059A27C EB25 jmp 0059A2A3 \\跳过“您输入的注册码不正确,请重新输入!”这段
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A1C7(C)
|
* Possible StringData Ref from Code Obj ->"您输入的注册码不正确,请重新输入!"
|
:0059A27E B85CA35900 mov eax, 0059A35C \\OD 用F2在这里下断就可被拦截
:0059A283 E81C0CEAFF call 0043AEA4
:0059A288 33D2 xor edx, edx
:0059A28A 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A290 E89F45ECFF call 0045E834
:0059A295 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A29B 8B10 mov edx, dword ptr [eax]
:0059A29D FF92C4000000 call dword ptr [edx+000000C4]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A27C(U)
|
:0059A2A3 33C0 xor eax, eax
==================================================================================
【工程声明】本过程只供内部学习之用!如要转载请保持过程完整!
==================================================================================
==================================================================================
【工程作者】sumica
==================================================================================
【软件名称】Word文档_资料管理系统
【下载地址】http://334420.nease.net
【所受限制】99次限制
【加壳保护】无
【软件介绍】
像我这样的树型结构的文档管理系统在网上有很多,但我觉得都不怎么好用,为什么呢?主要是它们对应的文档编辑功能很
弱;想到现在人们办公的编辑软件主要都采用微软office的word,这样一个新颖的念头在我的脑海中产生了,我要做一个将word做
为编辑器的文档管理系统。Word文档/资料管理系统直接将大家都非常熟悉的Word集成到软件中来,这样Word就成了我的内部
的文档编辑器,由于人们对Word都比较熟悉,使用起来就比较得心应手了
【前 言】此软件网上已经被破解,并且有补丁下载。我只是按我自己的思路写写而已。属于极容易的破解!
==================================================================================
【工程平台】Win 2K
【调试工具】FLY-Ollydbg、WDASM
==================================================================================
【破解过程】
1.当然是用PEID查看,发现target 没有壳(这年头没壳的已经没多见了 ^_^)
2.OD load,用“Ultra String Refence”插件查找”您输入的注册码不正确,请重新输入!“F2下断。
F9运行,跳过密码验证就是注册验证的窗口了,输入测试注册码“78787878”,确定 被拦截下来。
3.看右下脚的 内存窗口,你的机器码、注册码、测试注册码都已经在列。
本机机器码:107984 注册码:103424
==================================================================================
下面用WDASM分析看看:
…… ……
:0059A1C2 E8A5ABE6FF call 00404D6C //跟踪得知 这是关键call 比较注册码是否正确的地方
到这里从OD的右上角,真假的注册码 已经显示出来了
*行内的就是该CALL的内容
****************************************************************************************
:00404D6C 53 push ebx
:00404D6D 56 push esi
:00404D6E 57 push edi
:00404D6F 89C6 mov esi, eax //eax=78787878 (测试码)
:00404D71 89D7 mov edi, edx //edx= 103424 (正确注册码)
:00404D73 39D0 cmp eax, edx //两码作比较
:00404D75 0F848F000000 je 00404E0A //注册码正确就跳出此call
:00404D7B 85F6 test esi, esi //对两个操作数进行按位的'与运算,唯一不同之处是不将‘与’的结果送目的操作数,
//esi=78787878 (测试码) 即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位.
:00404D7D 7468 je 00404DE7 //等于0 就跳到 004040E7
:00404D7F 85FF test edi, edi //对标志位重新置位
//edi= 103424 (正确注册码)
:00404D81 746B je 00404DEE
:00404D83 8B46FC mov eax, dword ptr [esi-04] //eax=78787878 (测试码)
:00404D86 8B57FC mov edx, dword ptr [edi-04] //edx= 103424 (正确注册码)
:00404D89 29D0 sub eax, edx //eax-edx 结果存放在eax中
:00404D8B 7702 ja 00404D8F //大于就跳过 add edx, eax
:00404D8D 01C2 add edx, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D8B(C)
|
:00404D8F 52 push edx
:00404D90 C1EA02 shr edx, 02
:00404D93 7426 je 00404DBB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404DB1(C)
|
:00404D95 8B0E mov ecx, dword ptr [esi]
:00404D97 8B1F mov ebx, dword ptr [edi]
:00404D99 39D9 cmp ecx, ebx
:00404D9B 7558 jne 00404DF5 //进行真假对比
:00404D9D 4A dec edx
:00404D9E 7415 je 00404DB5
:00404DA0 8B4E04 mov ecx, dword ptr [esi+04]
:00404DA3 8B5F04 mov ebx, dword ptr [edi+04]
:00404DA6 39D9 cmp ecx, ebx
:00404DA8 754B jne 00404DF5 //进行真假对比
:00404DAA 83C608 add esi, 00000008
:00404DAD 83C708 add edi, 00000008
:00404DB0 4A dec edx
:00404DB1 75E2 jne 00404D95
:00404DB3 EB06 jmp 00404DBB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D9E(C)
|
:00404DB5 83C604 add esi, 00000004
:00404DB8 83C704 add edi, 00000004
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D93(C), :00404DB3(U)
|
:00404DBB 5A pop edx
:00404DBC 83E203 and edx, 00000003
:00404DBF 7422 je 00404DE3
:00404DC1 8B0E mov ecx, dword ptr [esi]
:00404DC3 8B1F mov ebx, dword ptr [edi]
:00404DC5 38D9 cmp cl, bl \\cl=37('7') bl=31('1') 比较开始位
:00404DC7 7541 jne 00404E0A \\不等就跳 到 ret
:00404DC9 4A dec edx \\记数器减1
:00404DCA 7417 je 00404DE3 \\等于 就条到下面
:00404DCC 38FD cmp ch, bh \\比较第二位
:00404DCE 753A jne 00404E0A \\不等就跳 到 ret
:00404DD0 4A dec edx \\记数器减1
:00404DD1 7410 je 00404DE3 \\等于 就条到下面
:00404DD3 81E30000FF00 and ebx, 00FF0000
:00404DD9 81E10000FF00 and ecx, 00FF0000
:00404DDF 39D9 cmp ecx, ebx \\比较第三位
:00404DE1 7527 jne 00404E0A \\不等就跳 到 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404DBF(C), :00404DCA(C), :00404DD1(C)
|
:00404DE3 01C0 add eax, eax
:00404DE5 EB23 jmp 00404E0A \\跳 到 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D7D(C)
|
:00404DE7 8B57FC mov edx, dword ptr [edi-04]
:00404DEA 29D0 sub eax, edx
:00404DEC EB1C jmp 00404E0A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404D81(C)
|
:00404DEE 8B46FC mov eax, dword ptr [esi-04]
:00404DF1 29D0 sub eax, edx
:00404DF3 EB15 jmp 00404E0A
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D9B(C), :00404DA8(C)
|
:00404DF5 5A pop edx
:00404DF6 38D9 cmp cl, bl \\比较第一位
:00404DF8 7510 jne 00404E0A
:00404DFA 38FD cmp ch, bh \\第二位比较
:00404DFC 750C jne 00404E0A
:00404DFE C1E910 shr ecx, 10
:00404E01 C1EB10 shr ebx, 10
:00404E04 38D9 cmp cl, bl \\第三位比较
:00404E06 7502 jne 00404E0A
:00404E08 38FD cmp ch, bh \\第四位比较
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404D75(C), :00404DC7(C), :00404DCE(C), :00404DE1(C), :00404DE5(U)
|:00404DEC(U), :00404DF3(U), :00404DF8(C), :00404DFC(C), :00404E06(C)
|
:00404E0A 5F pop edi
:00404E0B 5E pop esi
:00404E0C 5B pop ebx
:00404E0D C3 ret //跳出关键call
**************************************************************************************
:0059A1C7 0F85B1000000 jne 0059A27E //不等于就跳死了 所以这也是关键跳了
:0059A1CD B201 mov dl, 01 //dl=00 输入正确的注册码时
:0059A1CF A1103F4400 mov eax, dword ptr [00443F10]
:0059A1D4 E8379EEAFF call 00444010
:0059A1D9 8BD8 mov ebx, eax
:0059A1DB BA02000080 mov edx, 80000002
:0059A1E0 8BC3 mov eax, ebx
:0059A1E2 E8C99EEAFF call 004440B0
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh" \\从这里看出 软件在注册表建主键,删除该键就可重复试验。
|
:0059A1E7 BAE4A25900 mov edx, 0059A2E4
:0059A1EC 8BC3 mov eax, ebx
:0059A1EE E8ADA5EAFF call 004447A0
:0059A1F3 3C01 cmp al, 01
:0059A1F5 7510 jne 0059A207 \\不相等就跳过了 成功jmp
:0059A1F7 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A1F9 BAE4A25900 mov edx, 0059A2E4
:0059A1FE 8BC3 mov eax, ebx
:0059A200 E8EB9FEAFF call 004441F0
:0059A205 EB2B jmp 0059A232 \\跳到显示成功信息的地方
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A1F5(C)
|
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A207 BAE4A25900 mov edx, 0059A2E4
:0059A20C 8BC3 mov eax, ebx
:0059A20E E8019FEAFF call 00444114
:0059A213 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"SOFTWARE\wjsh"
|
:0059A215 BAE4A25900 mov edx, 0059A2E4
:0059A21A 8BC3 mov eax, ebx
:0059A21C E8CF9FEAFF call 004441F0
:0059A221 B9C3FFFFFF mov ecx, FFFFFFC3
* Possible StringData Ref from Code Obj ->"run_times" //运行次数的注册表键值
|
:0059A226 BAFCA25900 mov edx, 0059A2FC
:0059A22B 8BC3 mov eax, ebx
:0059A22D E8B6A3EAFF call 004445E8
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A205(U)
|
:0059A232 8D55F0 lea edx, dword ptr [ebp-10]
:0059A235 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A23B E8C445ECFF call 0045E804
:0059A240 8B4DF0 mov ecx, dword ptr [ebp-10]
* Possible StringData Ref from Code Obj ->"regist_code"
|
:0059A243 BA10A35900 mov edx, 0059A310
:0059A248 8BC3 mov eax, ebx
:0059A24A E8F5A2EAFF call 00444544
:0059A24F 8BC3 mov eax, ebx
:0059A251 E82A9EEAFF call 00444080
:0059A256 8BC3 mov eax, ebx
:0059A258 E80F98E6FF call 00403A6C
* Possible StringData Ref from Code Obj ->"注册成功!谢谢您的注册,谢谢您对我们的支持!"
|
:0059A25D B824A35900 mov eax, 0059A324
:0059A262 E83D0CEAFF call 0043AEA4
:0059A267 A1A06F5A00 mov eax, dword ptr [005A6FA0]
:0059A26C 8B00 mov eax, dword ptr [eax]
:0059A26E C6801904000001 mov byte ptr [eax+00000419], 01
:0059A275 8BC6 mov eax, esi
:0059A277 E80C11EEFF call 0047B388
:0059A27C EB25 jmp 0059A2A3 \\跳过“您输入的注册码不正确,请重新输入!”这段
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A1C7(C)
|
* Possible StringData Ref from Code Obj ->"您输入的注册码不正确,请重新输入!"
|
:0059A27E B85CA35900 mov eax, 0059A35C \\OD 用F2在这里下断就可被拦截
:0059A283 E81C0CEAFF call 0043AEA4
:0059A288 33D2 xor edx, edx
:0059A28A 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A290 E89F45ECFF call 0045E834
:0059A295 8B8604030000 mov eax, dword ptr [esi+00000304]
:0059A29B 8B10 mov edx, dword ptr [eax]
:0059A29D FF92C4000000 call dword ptr [edx+000000C4]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0059A27C(U)
|
:0059A2A3 33C0 xor eax, eax
==================================================================================
【工程声明】本过程只供内部学习之用!如要转载请保持过程完整!
==================================================================================
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- ollyodbg参照fly修改法 修改为何不能加载插件 5233
- Word文档资料管理系统 初步分析! 6342
- Fly兄弟看看! 3982
- 输入正确才激活‘确定’按钮,该如何下断? 4909
- 请问Fly,ESP定律到底是如何啊! 3988
看原图
赞赏
雪币:
留言: