能力值:
( LV7,RANK:110 )
2 楼
是不是因为资源管理器里没选中显示所有文件?
ps:我是真机WM6
上传的附件:
能力值:
(RANK:510 )
3 楼
小金可以试试看真机能否看到coredll.dll这样的系统核心DLL。
在真机上有了实验结果,给大家说说。
能力值:
(RANK:510 )
4 楼
我以前在模拟器上做过实验,即使是\Storage Card下没有设置隐藏属性的DLL还是看不到的。
我估计是微软的一种安全措施避免核心DLL被误操作,破坏系统。
前面有个帖子是介绍分析WM平台DLL文件破解的。我曾经做过实验要使用WM API访问\Windows下的DLL都会返回“文件不存在”错误,比如CreateFile想生成文件句柄就会返回这个错误。估计就是因为安全原因。
实验中只有一组API可以正常访问这些DLL就是FindFirstFile()和FindNextFile()这组函数。
另一个佐证是,如果你把你自己写的DLL放在\Windows目录下是可以用远程文件工具导出的。
而系统核心的DLL比如coredll.dll就不能导出,提示错误正是“系统找不到指定文件”。
能力值:
( LV7,RANK:110 )
5 楼
报告老大,你赢了……自带的资源管理器果然是看不到的,即使我打了增强补丁。
必须用第三方工具如Resco Explorer来看,会发现它是一个ROM属性的文件。
WM里默认是不显示隐藏文件系统文件这些的,而ROM属性的文件则是打死都不会显示的……
另外,核心的ROM属性的文件无法被复制删除替换,非核心的ROM属性文件不能被复制删除替换,但是可以另外复制一份在RAMDisk中做个镜像拷贝,然后系统会读取RAM中的镜像而忽略ROM中的源文件,当你把RAM里的文件删除后,系统就会恢复读取ROM里的。
上传的附件:
能力值:
(RANK:510 )
6 楼
其实我并不能肯定真机上的结果所以请小金试试。
非常感谢小金的实验和结果发布!
号召大家向小金学习!多对比,多做实验,多交流。就能逐步提高对系统的了解,提高水平。
能力值:
(RANK:510 )
7 楼
估计第三方软件也是使用FindFirstFile(),FindNextFile()得到全部DLL列表的。
小金说的很对,使用远程文件查看工具也可以看到这些DLL的属性是ROM属性,并且无法修改。
若要修改还是提示“文件找不到”
并且这些DLL加载到内存后,最开始的4K字节(含有PE文件头)内存具有不可访问属性。估计也是微软的安全策略。
能力值:
(RANK:510 )
8 楼
使用IDA PRO 5.2,静态分析这些软件,可以看看他们用了什么API。
能力值:
( LV7,RANK:110 )
9 楼
的确是FindFirstFileW
; Attributes: thunk
; HANDLE __stdcall FindFirstFileW(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData)
FindFirstFileW
LDR R12, =__imp_FindFirstFileW
LDR PC, [R12]
; End of function FindFirstFileW
sub_3184C
hwnd= -0x490
lptpm= -0x48C
var_488= -0x488
var_484= -0x484
var_480= -0x480
hMenu= -0x47C
var_478= -0x478
var_474= -0x474
var_470= -0x470
var_46C= -0x46C
var_468= -0x468
var_464= -0x464
prc= -0x460
FindFileData= -0x450
STMFD SP!, {R4-R8,LR}
LDR R12, =0x478
SUB SP, SP, R12 ; hwnd
MOV R1, #0x270
ADD R1, SP, R1
MOV R7, R0
BL sub_31488
LDR R1, =a_lnk ; wchar_t *
MOV R0, #0x270
ADD R0, SP, R0 ; wchar_t *
BL wcscat
LDR R8, =off_46120
MOV R4, #0
ADD R0, SP, #0x490+var_488
STR R4, [SP,#0x490+hMenu]
STR R8, [SP,#0x490+var_488]
STR R4, [SP,#0x490+var_484]
STR R4, [SP,#0x490+var_480]
BL sub_1CAD0
MOV R3, #0x14
ADD R1, SP, #0x490+FindFileData ; lpFindFileData
STR R4, [SP,#0x490+var_474]
MOV R0, #0x270
ADD R0, SP, R0 ; lpFileName
STR R4, [SP,#0x490+var_46C]
STR R4, [SP,#0x490+var_470]
STR R4, [SP,#0x490+var_464]
STR R4, [SP,#0x490+var_478]
STR R3, [SP,#0x490+var_468]
BL FindFirstFileW
MOVL R3, 0xFFFFFFFF
MOV R5, R0
CMP R5, R3
BEQ loc_31A50
能力值:
(RANK:510 )
10 楼
小金的速度就是快啊!
由此我们可以得出这样的结论:在WM中如果要写自定义函数判断某个文件是否存在?
最好使用FindFirstFile()这样的API。在桌面Windows平台有些朋友喜欢用fopen()尝试获取读文件指针,作为判断方法。WM平台则不可靠了。
能力值:
( LV7,RANK:110 )
11 楼
我觉得楼主如果想学好WM开发,最好还是能自己购入个WM手机,WM2003就不要了,WM5/6就行,全新的现在市场价也就1000多,除非你要超高档的Touch HD啥的,否则神达A700之类的1300--1500左右,还带GPS。
如果不嫌弃二手,500---800之间就能收到一个不错的。
因为很多东西你在模拟器里是没法调试的,我写一个定制工具的时候我程序一在模拟器里跑就崩溃,真机却没问题。
还有一些涉及到电话方面的功能用模拟器也很累人的。
我现在是多普达828+升级WM6简体中文版,上个月花了400元收的-_-然后我才开始接触真正的WM-PPC编程,以前用MPX200是Smartphone平台,没多少程序好写。
能力值:
(RANK:510 )
12 楼
小金的建议相当详细中肯!
如果经济条件允许有真机或者实验板确实会好很多。
能力值:
( LV2,RANK:10 )
13 楼
高手,都是高手
能力值:
( LV7,RANK:110 )
14 楼
楼主想要什么DLL?WM6的我可以给你,我这里解开了一个WM6的ROM,整个Windows目录的文件都完整的。
能力值:
(RANK:510 )
15 楼
小金厉害啊!是用什么方法搞得。介绍一下吧?
我都想要,不知行不?
能力值:
( LV7,RANK:110 )
16 楼
有个ROM定制工具包叫Kitchen Rom……可以把真正WM机的ROM文件分成xip和os两部分然后再解开文件……
所有dll是50MB,完整目录是70多MB
能力值:
(RANK:510 )
17 楼
小金研究的工具还真多!如果能够搞到,下一个回去好好破一破。
XIP是什么文件?
能力值:
(RANK:510 )
18 楼
楼主的问题,提的不错。真是越来越有搞头了。
多研究,多交流,收获极大!
能力值:
( LV7,RANK:110 )
19 楼
XIP是一系列核心文件的统称。
WM-PPC真机里系统是分两个区存储的,核心区叫做XIP,就是eXecute In Place,立即执行。里面的文件是未经过压缩的,可以直接在ROM芯片里执行。当然由于真机用的还是NAND类型的芯片,所以实际上还是要复制到RAM里执行的,这是SPL加载系统后立即执行的部分,类似于x86里ntldr加载ntoskrnl启动Windows的过程一样。XIP里的核心程序nk.exe这些执行后才会加载OS区的其他系统文件,类似于x86里Csrss、Smss这些初始子系统的调用。
XIP之后就是OS区,也就是外壳和其他众多服务的地方了,这上面的东西都是建立在XIP区里核心文件启动出来的子系统环境基础上的。
SPL是用于加载XIP和OS的引导区,而加电点亮机器的是IPL负责的,这部分你可以看成是BIOS。
能力值:
( LV7,RANK:110 )
20 楼
http://www.cotulla.pp.ru/Magician2.html
到这里下载一个ROM文件解压,然后有个os.nbf,就是压缩好的整个ROM文件了,等你下完这文件我再告诉你解压方法@@
能力值:
(RANK:510 )
21 楼
回答的太好了!
nk.exe经常在进程列表中看到,知道是个非常重要的核心文件。
能力值:
(RANK:510 )
22 楼
正在下。
晚上速度蛮快啊。哈哈。
能力值:
(RANK:510 )
23 楼
从顶级域名看:ru,似乎是一个俄国网站?
能力值:
( LV7,RANK:110 )
24 楼
此人是我828+能用上WM6系统的大神~~~~用他的ROM做例子是因为他的ROM解开步骤简单。
能力值:
(RANK:510 )
25 楼
智能手机可以重新刷新系统升级确实是一个相当大的卖点!
相信未来:智能手机能像现在的PC一样自由的换装安装不同的OS系统和软件。
去年研究Android手机的时候,就看到国外有高手把Google放出的模拟器系统改装后装在Nokia手机上,用起来非常爽。