破解doctotxt
日期:2005年4月17日 破解人:yijun———————————————————————————————————————————
【软件名称】:doctotxt
【软件版本】:1.0
【软件大小】:529KB
【下载地址】:internet
【软件简介】:DocToTxt 是一个将Word 文件(以.doc为后缀)转换为文本文件(以.txt为后缀)的
文档格式批量转换工具。使用它可以一次性地把多个 doc 文件转换为多个对应的 txt 文
件,以方便于某些办公和公文处理的需要。在转换后得到的 txt 文件中,原来 doc 文件
中的全部文本(文字)信息得以保留,而图片和表格线等则不复存在。由于txt 文件体积
小巧,又很方便编辑,DocToTxt 工具在某些档案文件的管理中能够发挥很好的作用。
【软件限制】:未注册只能用15次~
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:OD
———————————————————————————————————————————
【破解过程】:
peid查壳知该软件为tElock 0.98b1 -> tE!壳,OD载入选不继续分析,来到以下地方。
00491BD6 >^\E9 25E4FFFF jmp doctotxt.00490000
00491BDB 0000 add byte ptr ds:,al
00491BDD 00CF add bh,cl
00491BDF 26:084D 1E or byte ptr es:,cl
00491BE3 1C 09 sbb al,9
00491BE5 0000 add byte ptr ds:,al
00491BE7 0000 add byte ptr ds:,al
00491BE9 0000 add byte ptr ds:,al
00491BEB 0000 add byte ptr ds:,al
00491BED 003E add byte ptr ds:,bh
00491BEF 1C 09 sbb al,9
00491BF1 002E add byte ptr ds:,ch
00491BF3 1C 09 sbb al,9
00491BF5 0026 add byte ptr ds:,ah
00491BF7 1C 09 sbb al,9
00491BF9 0000 add byte ptr ds:,al
00491BFB 0000 add byte ptr ds:,al
00491BFD 0000 add byte ptr ds:,al
00491BFF 0000 add byte ptr ds:,al
00491C01 004B 1C add byte ptr ds:,cl
ALT+M,在内存映射,项目 26
地址=00481000
大小=0000F000 (61440.)
宿主=doctotxt 00400000
区段=.rsrc
包含=resources
类型=Imag 01001002
访问=R
初始访问=RWE
设置内存访问断点。Shift+F9后断在以下地方。
004910A9 F3:A5 rep movs dword ptr es:,dwor>
004910AB 8BCB mov ecx,ebx
004910AD F3:A4 rep movs byte ptr es:,byte >
004910AF 8BF2 mov esi,edx
004910B1 8B7C24 28 mov edi,dword ptr ss:
004910B5 52 push edx
004910B6 55 push ebp
004910B7 FC cld
004910B8 B2 80 mov dl,80
004910BA A4 movs byte ptr es:,byte ptr >
004910BB E8 6D000000 call doctotxt.0049112D
004910C0^ 73 F8 jnb short doctotxt.004910BA
004910C2 33C9 xor ecx,ecx
004910C4 E8 64000000 call doctotxt.0049112D
004910C9 73 1A jnb short doctotxt.004910E5
004910CB 33C0 xor eax,eax
004910CD E8 5B000000 call doctotxt.0049112D
004910D2 73 20 jnb short doctotxt.004910F4
004910D4 41 inc ecx
再次ALT+M,在内存映射,项目 21
地址=00401000
大小=00070000 (458752.)
宿主=doctotxt 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE
设置内存访问断点。Shift+F9后断在以下地方。
00470574 55 push ebp//入口
00470575 8BEC mov ebp,esp
00470577 B9 06000000 mov ecx,6
0047057C 6A 00 push 0
0047057E 6A 00 push 0
00470580 49 dec ecx
00470581^ 75 F9 jnz short doctotxt.0047057C
00470583 B8 4C034700 mov eax,doctotxt.0047034C
00470588 E8 DB60F9FF call doctotxt.00406668
0047058D 33C0 xor eax,eax
0047058F 55 push ebp
00470590 68 3B084700 push doctotxt.0047083B
00470595 64:FF30 push dword ptr fs:
00470598 64:8920 mov dword ptr fs:,esp
0047059B 8D55 F0 lea edx,dword ptr ss:
0047059E B8 50084700 mov eax,doctotxt.00470850 ; ASCII "abc"
OD插件脱壳(不要重建输入表)后关闭OD~~~~~~~~~修复即可,或直接用脱壳软件脱该壳~~~~~~~~~
*********************************************************************************************
OD的UNICODE查找关键字很容易来到以下地方处~~~~~~~
004655B0 55 push ebp
004655B1 68 4C574600 push doctotxt.0046574C
004655B6 64:FF30 push dword ptr fs:
004655B9 64:8920 mov dword ptr fs:,esp
004655BC 8D95 E8FEFFFF lea edx,dword ptr ss:
004655C2 B8 60574600 mov eax,doctotxt.00465760 ; ASCII "abc"
004655C7 E8 B0F5FFFF call doctotxt.00464B7C
004655CC 6A 00 push 0
004655CE 6A 00 push 0
004655D0 8D45 F0 lea eax,dword ptr ss:
004655D3 50 push eax
004655D4 8D45 F4 lea eax,dword ptr ss:
004655D7 50 push eax
004655D8 8D45 EC lea eax,dword ptr ss:
004655DB 50 push eax
004655DC 68 00010000 push 100
004655E1 8D85 ECFEFFFF lea eax,dword ptr ss:
004655E7 50 push eax
004655E8 68 64574600 push doctotxt.00465764 ; ASCII "c:\"
004655ED E8 2A12FAFF call <jmp.&kernel32.GetVolumeInf>
004655F2 8D95 E4FEFFFF lea edx,dword ptr ss:
004655F8 B8 70574600 mov eax,doctotxt.00465770 ; ASCII "dfe"
004655FD E8 66F6FFFF call doctotxt.00464C68
00465602 8D95 E0FEFFFF lea edx,dword ptr ss:
00465608 B8 7C574600 mov eax,doctotxt.0046577C ; ASCII "rty"
0046560D E8 9EF6FFFF call doctotxt.00464CB0
00465612 8D45 FC lea eax,dword ptr ss:
00465615 50 push eax
00465616 33C9 xor ecx,ecx
00465618 BA 88574600 mov edx,doctotxt.00465788
0046561D B8 A0574600 mov eax,doctotxt.004657A0
00465622 E8 9D8DFEFF call doctotxt.0044E3C4
00465627 8D95 DCFEFFFF lea edx,dword ptr ss: //在此下断
0046562D B8 B0574600 mov eax,doctotxt.004657B0 ; ASCII "8uh"
00465632 E8 C1F6FFFF call doctotxt.00464CF8
00465637 8D95 D8FEFFFF lea edx,dword ptr ss:
0046563D B8 BC574600 mov eax,doctotxt.004657BC ; ASCII "kd;"
00465642 E8 F9F6FFFF call doctotxt.00464D40
00465647 8B45 EC mov eax,dword ptr ss:
0046564A 33D2 xor edx,edx
0046564C 52 push edx
0046564D 50 push eax
0046564E 8D85 D0FEFFFF lea eax,dword ptr ss:
00465654 E8 B72FFAFF call doctotxt.00408610
00465659 8B85 D0FEFFFF mov eax,dword ptr ss: ; 1094317849送EAX
0046565F 8D95 D4FEFFFF lea edx,dword ptr ss:
00465665 E8 1EF7FFFF call doctotxt.00464D88 //跟进
0046566A 8B95 D4FEFFFF mov edx,dword ptr ss://跳出,此时保存的是真码送EDX
00465670 8B45 FC mov eax,dword ptr ss: //取假码
00465673 E8 74E8F9FF call doctotxt.00403EEC//比较CALL
00465678 0F85 A8000000 jnz doctotxt.00465726 //关键比较
0046567E 68 2C010000 push 12C
00465683 E8 4C12FAFF call <jmp.&kernel32.Sleep>
00465688 B2 01 mov dl,1
0046568A A1 88AC4400 mov eax,dword ptr ds:
0046568F E8 F456FEFF call doctotxt.0044AD88
00465694 8945 F8 mov dword ptr ss:,eax
00465697 33C0 xor eax,eax
00465699 55 push ebp
0046569A 68 1F574600 push doctotxt.0046571F
0046569F 64:FF30 push dword ptr fs:
004656A2 64:8920 mov dword ptr fs:,esp
004656A5 BA 01000080 mov edx,80000001
004656AA 8B45 F8 mov eax,dword ptr ss:
004656AD E8 7657FEFF call doctotxt.0044AE28
004656B2 B1 01 mov cl,1
004656B4 BA C8574600 mov edx,doctotxt.004657C8 ; ASCII "\Software\Microsoft\Notepad"
004656B9 8B45 F8 mov eax,dword ptr ss:
004656BC E8 CB57FEFF call doctotxt.0044AE8C
004656C1 84C0 test al,al
004656C3 74 3C je short doctotxt.00465701
004656C5 8D95 CCFEFFFF lea edx,dword ptr ss:
004656CB 8B45 FC mov eax,dword ptr ss:
004656CE E8 F1F4FFFF call doctotxt.00464BC4
004656D3 8B8D CCFEFFFF mov ecx,dword ptr ss:
004656D9 BA EC574600 mov edx,doctotxt.004657EC ; ASCII "enroll"
004656DE 8B45 F8 mov eax,dword ptr ss:
004656E1 E8 4259FEFF call doctotxt.0044B028
004656E6 B8 FC574600 mov eax,doctotxt.004657FC
004656EB E8 B889FEFF call doctotxt.0044E0A8
004656F0 C605 E4384700 0>mov byte ptr ds:,0
004656F7 A1 E0384700 mov eax,dword ptr ds:
004656FC E8 1311FEFF call doctotxt.00446814
00465701 33C0 xor eax,eax
00465703 5A pop edx
00465704 59 pop ecx
00465705 59 pop ecx
00465706 64:8910 mov dword ptr fs:,edx
00465709 68 26574600 push doctotxt.00465726
0046570E 8B45 F8 mov eax,dword ptr ss:
00465711 E8 E256FEFF call doctotxt.0044ADF8
00465716 8B45 F8 mov eax,dword ptr ss:
00465719 E8 9AD7F9FF call doctotxt.00402EB8
0046571E C3 retn
****************************************************************
跟进00465665处CALL来到这里:
00464D88 55 push ebp
00464D89 8BEC mov ebp,esp
00464D8B 83C4 F4 add esp,-0C
00464D8E 53 push ebx
00464D8F 56 push esi
00464D90 57 push edi
00464D91 33C9 xor ecx,ecx
00464D93 894D F4 mov dword ptr ss:,ecx
00464D96 8955 F8 mov dword ptr ss:,edx
00464D99 8945 FC mov dword ptr ss:,eax ; 1094317849送EAX
00464D9C 8B45 FC mov eax,dword ptr ss:
00464D9F E8 ECF1F9FF call doctotxt.00403F90
00464DA4 33C0 xor eax,eax ; 清EAX
00464DA6 55 push ebp
00464DA7 68 524E4600 push doctotxt.00464E52
00464DAC 64:FF30 push dword ptr fs:
00464DAF 64:8920 mov dword ptr fs:,esp
00464DB2 C705 D0384700 F>mov dword ptr ds:,0F0
00464DBC 8B3D C8384700 mov edi,dword ptr ds:
00464DC2 033D D8384700 add edi,dword ptr ds:
00464DC8 033D D4384700 add edi,dword ptr ds:
00464DCE 033D CC384700 add edi,dword ptr ds:
00464DD4 033D D0384700 add edi,dword ptr ds:
00464DDA 033D DC384700 add edi,dword ptr ds:
00464DE0 33DB xor ebx,ebx
00464DE2 8B45 FC mov eax,dword ptr ss:
00464DE5 E8 F2EFF9FF call doctotxt.00403DDC ; 测试1094317849长度
00464DEA 85C0 test eax,eax ; EAX保存结果
00464DEC 7E 28 jle short doctotxt.00464E16 ; 小于就跳
00464DEE BE 01000000 mov esi,1
00464DF3 8B55 FC mov edx,dword ptr ss: ; 逐位处理1094317849,开始EBX为0。
00464DF6 8A5432 FF mov dl,byte ptr ds:
00464DFA 32D3 xor dl,bl ; DL和BL异或
00464DFC 81E2 FF000000 and edx,0FF ; 清EDX高位
00464E02 8B1495 381C4700 mov edx,dword ptr ds:[edx*4+471C>; 51DE003A送EDX
00464E09 C1EB 08 shr ebx,8 ; EBX右移8位
00464E0C 23DF and ebx,edi ; EBX和EDI与
00464E0E 33D3 xor edx,ebx ; EDX和EBX异或
00464E10 8BDA mov ebx,edx ; EBX保存结果
00464E12 46 inc esi ; ESI加一
00464E13 48 dec eax ; EAX减一
00464E14^ 75 DD jnz short doctotxt.00464DF3 ; 没处理完继续,处理完后EBX=54DF37ED
00464E16 8BC3 mov eax,ebx ; 结果送EAX
00464E18 33D2 xor edx,edx ; 清EDX
00464E1A 52 push edx
00464E1B 50 push eax
00464E1C 8D55 F4 lea edx,dword ptr ss:
00464E1F B8 08000000 mov eax,8
00464E24 E8 1B38FAFF call doctotxt.00408644
00464E29 8B45 F4 mov eax,dword ptr ss: ; 保存54DF37ED
00464E2C 8B55 F8 mov edx,dword ptr ss:
00464E2F E8 2434FAFF call doctotxt.00408258
00464E34 33C0 xor eax,eax
00464E36 5A pop edx
00464E37 59 pop ecx
00464E38 59 pop ecx
00464E39 64:8910 mov dword ptr fs:,edx
00464E3C 68 594E4600 push doctotxt.00464E59
00464E41 8D45 F4 lea eax,dword ptr ss:
00464E44 E8 F7ECF9FF call doctotxt.00403B40
00464E49 8D45 FC lea eax,dword ptr ss:
00464E4C E8 EFECF9FF call doctotxt.00403B40 ; 将54DF37ED中大写字母转换成小写
00464E51 C3 retn //返回
———————————————————————————————————————————
【Crack_总结】:
这个软件可能是把机器码通过一系列运算成一个固定值,就好象我的是1094317849一样,再通过以上计算成注册码,我的是54df37ed。
明码比较,没什么可多说的~~~~~~~~~ 支持一下。 给你加5分
页:
[1]