各位牛人帮帮忙...(文件读取)

Peter200694013 2013-06-25 07:21:55
代码的主要功能应该是从文件里读内容,下面的代码具体什么意思?如果转换为C++或C#,应该怎么读取文件?
aDataEpcdata_da db '\Data\Data.dat',0 ; DATA XREF: sub_52845C+4Eo
align 4
dd 0FFFFFFFFh, 12h]


mov edx, [ebp+var_8]
mov eax, offset unk_619FB4
mov ecx, offset aDataEpcdata_da ; "\\Data\\Data.dat"
call sub_4051BC

sub_4051BC proc near ; CODE XREF: sub_40A658+5Cp
CODE:004051BC ; sub_418554+E2p ...
CODE:004051BC test edx, edx
CODE:004051BE jz short loc_405221
CODE:004051C0 test ecx, ecx
CODE:004051C2 jz sub_404F04
CODE:004051C8 cmp edx, [eax]
CODE:004051CA jz short loc_405228
CODE:004051CC cmp ecx, [eax]
CODE:004051CE jz short loc_4051DE
CODE:004051D0 push eax
CODE:004051D1 push ecx
CODE:004051D2 call sub_404F04
CODE:004051D7 pop edx
CODE:004051D8 pop eax
CODE:004051D9 jmp sub_405178
...全文
316 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2013-06-27
  • 打赏
  • 举报
回复
不熟悉 delphi
Peter200694013 2013-06-27
  • 打赏
  • 举报
回复
引用 11 楼 adlay 的回复:
嗯, 文件名这些常量的话是放在只读数据区的. 你看以查看里面的所有字符串, 找找有没有 select, insert 之类的 SQL 语句.
之前说错了...用PEid检查了下 是delphi 编写的。 那个程序是单机版的,数据直接用的.dat文件里的内容, delphi 可以把对象序列化到.dat吗?
www_adintr_com 2013-06-26
  • 打赏
  • 举报
回复
嗯, 文件名这些常量的话是放在只读数据区的. 你看以查看里面的所有字符串, 找找有没有 select, insert 之类的 SQL 语句.
Peter200694013 2013-06-26
  • 打赏
  • 举报
回复
引用 9 楼 adlay 的回复:
写软件的可以自己定义格式啊, 没办法猜的.
对于文件名 汇编里面还是明文吧?不会被处理吧? 如果是数据库文件,那么对应的汇编代码一般有哪些相关的指令?
www_adintr_com 2013-06-25
  • 打赏
  • 举报
回复
这是 IDA 反汇编的? C++ 里会调用 ReadFile 这个系统函数来读文件, 你的读取功能也许还在 sub_404F04 里面吧.
Peter200694013 2013-06-25
  • 打赏
  • 举报
回复
没人?
www_adintr_com 2013-06-25
  • 打赏
  • 举报
回复
写软件的可以自己定义格式啊, 没办法猜的.
Peter200694013 2013-06-25
  • 打赏
  • 举报
回复
引用 7 楼 adlay 的回复:
你不知道这个数据文件的格式没法读, 读进来也是这样的乱码. 加密没有不能靠假设呀
一般都是有什么格式? 方便加了QQ吗? 644942302 谢谢
www_adintr_com 2013-06-25
  • 打赏
  • 举报
回复
你不知道这个数据文件的格式没法读, 读进来也是这样的乱码. 加密没有不能靠假设呀
Peter200694013 2013-06-25
  • 打赏
  • 举报
回复
引用 4 楼 adlay 的回复:
就是二进制数据, db 表示 DATA BYTE dd 表示 DATA DWORD
这个MFC程序的数据来自'Data.dat', 类似于“比如多个年级,然后每个年级有哪些班级,每个班又有哪些学生” 这样的数据; 现在这个文件 用记事本打开乱码,开始部分是中文乱码,之后就是 字母 数字 空格等符号了 请问 我用别的编程语言 怎么把数据读出来(假设没有加密) ??.?p?:A袸乃+??J勛J?)4€歬kX襏?坮 MV?0挢B閍汷庬茇YR榶"<顐?昍迗o筩7?Ilt*.擐喑?瞞Wc孷@4(褿鱯藨死 ?B遙鐿歧馿遢{f遛脩rZ)疓?賠y?^2U7霛羜?蹙?±芫a*五鄟6扃A凈8Ng旽Z鳾咼d"?霆雽媖?眈綠耊攖]鱁a級??b储Zj'刂e禒\H9B輗?r稕╯薚鞨 z蚮h;鍜?鍹??m矖?U^蓋s昮2?qQy妦PY績藩称泷烞踣泥'偵揉爱,陏爠.??o?酘k齡?r翼?^IA兺m刴N銸l沗检?H岏妙>的焰竏"s?繸E 坓指溋骪9?@鄎o鑛暨/砂%cUS"[﹟dゝ烋T?劎'L*+?<潜T菓~??飊唟e瘗T;4嚭鵗;?捼霺9fP苰凙j飸箜才?/3c阚届lp间,~Q恍芥SW?蟰C珖p栿?浌?銡>ND瓦砽紋sC€凣爬蓹丫?辴誹)Io?#蝫嘶W?蓁殆j: C[?跢睏葬R愕)凉<鲲絜SRh?5r峉?1魔"x摘?T慃m~?僈ga;>[€ `@隆"c眈?颌兏N定E&@?dPs左yM??.?e??豽)|49陲epy愐b鵡?~桬?W鏵傟僴a嫗楒 芠忡9?餕止OAa?W!赡唝l为╖Q$?ov!u蠺P@"p〤[T闞葊?c?$?箾u褵Y讙pf駦?浖p6伔晸沶譩枸?砣鞥堆愝?鄳i珙d7%g5rh+/I頢G?骏湯h?鈅?As?XA`?-O損屑巼謟?凅劊D4夕任?榃啷庄U??q+"?]煷z瀇沯姨巂b?N4-JO01hPPYtOqlG4BdexuZkyRcthyuZm83NG4fbLS4a5jIKsHYcb3d96GEgsggX8TwsuhspRng7lZxoeN1gr1IYXYl2UIesx0OYKX99vwmNibqyAhWRY/UguGylWXYteTOGAjCd+kMCaVW+I6+bdrEhJwJfeHoS0gG57rZY2d9pA6BxHJmpN7h9a+2Gr8DR+KuE1KrLExbyYuYatDMOspVVXKGRQf8AhSx4WyuZJ25ZIE5Q0pPUgN0y+Ki2KX3qEj9S6ZtWVIGAbAyRb1i6EGdyk/EeuE09B7Sqgfr1nmhLvdPRCeo06tSgO+
  • 打赏
  • 举报
回复
加载一下符号表呀,这样子不好看出是什么功能的
www_adintr_com 2013-06-25
  • 打赏
  • 举报
回复
就是二进制数据, db 表示 DATA BYTE dd 表示 DATA DWORD
Peter200694013 2013-06-25
  • 打赏
  • 举报
回复
引用 2 楼 adlay 的回复:
这是 IDA 反汇编的? C++ 里会调用 ReadFile 这个系统函数来读文件, 你的读取功能也许还在 sub_404F04 里面吧.
感谢您的回复.... 对的 是IDA 反汇编的... aDataEpcdata_da db '\Data\Data.dat',0 ; DATA XREF: sub_52845C+4Eo align 4 dd 0FFFFFFFFh, 12h] 这个是什么意思啊?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧