首页
社区
课程
招聘
[求助]VB软件里的字符串显示长度限制,有没有高人解答!
发表于: 2009-6-24 15:55 8208

[求助]VB软件里的字符串显示长度限制,有没有高人解答!

2009-6-24 15:55
8208
VB软件里的字符串显示长度限制,修改超过限制的话就会出现乱码,能没有高人解答下!!!谢谢了

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 113
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
VB那老掉牙的东西就放弃掉吧- -!``
想界面简单的用DELPHI..
不过貌似这里是调试论坛. - -!``
用C以下的语言吧- - ...BT点的直接写汇编码.
2009-6-24 16:38
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,大侠解答,但是老东西也有需要用到的地方,我主要想知道如何改长字符不出现乱码,或是清除长度限制,我不是汇编是调试。
2009-6-24 17:23
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
vb是unicode编码吧。如果修改的不正确,也是乱码,提示你看看是不是修改的时候弄错。
另外不知道还有长度的限制,没接触过
2009-6-24 17:41
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
应该有的吧,我改的时候都是转unicode编码改的,改多了就出错。。。。
2009-6-24 17:52
0
雪    币: 546
活跃值: (1627)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
这个不难,一般在字符的前面都有当前字符的长度信息,可以去修改他来达到修改字符长度的目的。

http://bbs.pediy.com/showthread.php?t=87567
2009-6-24 19:44
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢解答,看样子应该有用,我去试试!
2009-6-25 04:59
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好像还是不行,字符前面好像没有长度信息,还有空间不够用怎么办?
2009-6-25 05:07
0
雪    币: 729
活跃值: (1195)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
空间不够的话,一,另外找一块够的,然后把地址指过去;二,用工具申请一块,再把地址指向新的即可。
2009-6-25 11:16
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能不能说详细些,还有工具什么工具可以做到,谢谢
2009-6-25 12:58
0
雪    币: 729
活跃值: (1195)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
PE重建工具,网上很多的(google),如IATRebulid。
建议你还是先找一下空闲的空间,一般程序都会有很多空闲的。
2009-6-25 13:17
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
恩,我去试试看!
2009-6-25 13:25
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
0047C39C    58              pop eax
0047C39D    0038            add byte ptr ds:[eax],bh
0047C39F    0038            add byte ptr ds:[eax],bh
0047C3A1    0038            add byte ptr ds:[eax],bh
0047C3A3    0038            add byte ptr ds:[eax],bh
0047C3A5    0038            add byte ptr ds:[eax],bh
0047C3A7    0038            add byte ptr ds:[eax],bh
0047C3A9    0038            add byte ptr ds:[eax],bh
0047C3AB    0045 00         add byte ptr ss:[ebp],al
0047C3AE    0000            add byte ptr ds:[eax],al
这个是输出的代码,显示的内容是X8888888E
我直接找个空白地方改成一样的,然后把 006FF99D的地址改成我找的那块空地的地方,改出来什么都没有显示
006FF99D    BA 9CC34700     mov edx,2.0047C39C                       ; UNICODE "X8888888E"
006FF9A2    B9 9400A900     mov ecx,2.00A90094
2009-6-25 13:48
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
问题还未解决。哪位大哥帮忙解决下啊!!!!!!!
2009-6-25 20:57
0
雪    币: 538
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
String 数据类型

字符串有两种:变长与定长的字符串。
变长字符串最多可包含大约 20 亿 ( 2^31)个字符。
定长字符串可包含 1 到大约 64K ( 2^16 ) 个字符。

看来你的字串还真的挺长的。
2009-6-26 15:17
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不是吧,我只需要1、20个字符长度
2009-6-26 18:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
const unsigned short  0047C39C[9]={
0x0058,0x0038,0x0038,0x0038,
0x0038,0x0038,0x0038,0x0038,
0x0045,0x0000
};
BSTR lData1=SysAllocStr(&0047C39C);

汇编的话估计是
PUSH  2.0047C39C   '字符首地址
CALL   SysAllocStr
mov edx,EAX
mov ecx,2.00A90094
2009-6-27 23:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
最原始应该是这样的
BSTR lData1=SysAllocStr(L"X8888888E");
2009-6-27 23:44
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
谢谢你的解答,但哪位大哥能说的更新详细些,有视频最好
2009-6-28 00:38
0
游客
登录 | 注册 方可回帖
返回
//