分享
 
 
 

提取新东方背单词II的词库

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

<2003/3/20>

背单词背的无聊,前几天跑xdict的词库,跑了一些就删了,今天来提取"新东方背单词II"的词库。网上的词库很多了,很久以前在一个palm的论坛上,一个高人说要弄一个朗文的背单词词库,期待了很久,还是没出来,估计是工作太忙了......

工具如下 win32dasm,vc.net

其实一切破解的过程就是浪费时间的过程~~,然后就是观察,猜测,当然人聪明,花的时候也少:-)

用win32dasm打开Recite.exe,新东方背单词II就这一个文件,连dll都没有,真是......

打开之后,跳转到书籍管理~~

这词库无论如何都要ReadFile吧,就在ReadFile的地方设了几个断点,具体点就是在dasm'函数'->import出来的地方找到ReadFile, (KERNEL32.ReadFile),然后double click几下,用F2设几个断点,然后跟踪了一下,发现在 书籍管理中切换书籍的时候,有很多地方被循环调用,最常见的就是40be3b处一系列代码

其中有一个函数调用最关键

call Recite.00407610

这个函数调用之后,堆栈里面出现0x400长的一段数据

如下

<Name>研究生入学英语考试词汇<Version>2.00.000

<0><w>a<p>[e, ei, 4]<c>art. 一(个);任何一个;每,每一

<1><w>an<p>[4n, 1n]<c>art. 一(个);任何一个;每,每一

<2><w>abandon<p>[4'b1nd4n]<c>v. 放弃;抛弃

<ee>He abandoned his wife and child and ran away.

<ee>In his early days Mr. Lu Xun abandoned medicine for literature.

<s>forsake, desert, relinquish

<3><w>abide<p>[4'baid]<c>v.(by)坚持,遵守

<4><w>ability<p>[4'biliti]<c>n. 能力,智能;才能,才干

<5><w>able<p>['eib4l]<c>a. 有能力的,能干的,显示出才华的

这显然就是词库了,<ee>句子<w>表单词<p>音标....

想想就知道这个软件每次都是把所有单词读入内存,好了,让我们看看00407610处的函数的参数

lea ecx,dword ptr [esp+2C]

mov esi,eax

push ecx

lea edx,dword ptr [esp+40]

push esi

push edx

看看再想想就知道esp+40是第一个参数,是个buf地址,esi当时是0x400,应该就是buf长,剩下的一个如果没弄错,应该是操作对象。函数调用如果没记错,应该是__cdecl,从右向左入栈,被调者自己清栈.

好了,剩下的就是在这个地方,加入自己代码,打开一个文件,在后面写入0x400长,然后flushbuf,close掉

自己写汇编是不是很麻烦?不用啊,我们的.net出场了

OFSTRUCT ofs;

char name[8];//为了方便‘看’,定义为8

name[0] = 'c';

name[1] = ':';

name[2] = '\\';

name[3] = 'c';

name[4] = 0 ;

HANDLE handle = (HANDLE)OpenFile(name,&ofs,OF_WRITE);

SetFilePointer(handle,0,0,FILE_END);

char buf[0x10];

DWORD byte;

WriteFile(handle,buf,0x10,&byte,0);

FlushFileBuffers(handle);

CloseHandle(handle);

然后在vc.net中直接看汇编代码

sub esp,0A8h

mov al,63h

mov byte ptr [esp+8],al

mov byte ptr [esp+0B],al

push 1

lea eax,[esp+24]

push eax

lea ecx,[esp+10]

push ecx

mov byte ptr [esp+15],3A

mov byte ptr [esp+16],5C

mov byte ptr [esp+18],0

call dword ptr [__imp__OpenFile@12 (405010h)]

//004e3238

push 2

push 0

mov esi,eax

push 0

push esi

call dword ptr [__imp__SetFilePointer@16 (40500Ch)]

//004e32c0

push 0

lea edx,[esp+8]

push edx

push 400 //写入字节数

lea eax,[esp+1Ch] //写入地址

push eax

push esi

call dword ptr [__imp__WriteFile@20 (405008h)]

//004e32b8

push esi

call dword ptr [__imp__FlushFileBuffers@4 (405004h)]

//004e32bc

push esi

call dword ptr [__imp__CloseHandle@4 (405000h)]

//004e32ac

add esp,0A8

(以上代码略有修改)这段代码最开始sub esp,0A8h ,用0A8h的空间来保存

OFSTRUCT ofs;

char name[8];

之类的变量,最后add esp,0A8还原

显然,为了避免麻烦,还要在前面

push esi

push edx

push ecx

push eax

在后面

pop eax

pop ecx

pop edx

pop esi

然后就是找个地方把我们的代码放起来了~,翻啊翻,翻到最后4e20e9的地方,找了一大片空地,好了,就是这儿了

在Recite.406e3b地方,把原来的mov ecx,dword ptr [esp + 450]改为

jmp 4e20e9

nop

nop

两个nop是为了填空

然后在4e20e9的地方写原来的那个mov,接着写自己的代码,就是上面的汇编代码

其中的函数调用OpenFile,SetFilePointer等要替换成相应的地址

如何找到地址?无非就是在'函数'->import出来了地方double click几下,然后copy一下了咯

比如 SetFilePointer就是

call [004e32c0]

而且其中FileWrite的buf地址要改一下,

lea eax, dword ptr [esp+0000010C]

最后要jmp回原地,继续执行

好了搞定了,每次在书籍管理中切换词库之前,先del c:\c,然后建一个空的文件名叫c,切换完后c就被写完了,除了所有的正常内容外,后面会多一点内容,删掉就可以了(因为我们每次都是写的400,没有检查返回)

c就是相应的词库,然后可以干吗呢?好像新东方背单词II词库也不比网上流传的词库好多少......

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有