好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 zhuxiangyu1024 于 2024-3-23 16:34 编辑
c写了一段hook,将某个delphi应用的寄存器 eax指向的字符串修改为2,假如这个delphi的eax指向的字符串是个c字符串,程序是可以正常运行的,一旦为delphi string程序无法正常运行。
略过其他hook相关的代码,代码仅仅只有v指向的不同,当程序的eax寄存器指向一个c字符串的时候,可以直接将寄存器指向 v
char* v = "2";
而delphi anstring的结构 为 refcount| size| strbuff ,我尝试在内存里面直接写入字节数据,虽然eax确实指向了这段数据,但是程序直接崩溃了。
char data[] = {0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x32,0x0,0x0,0x0};
char* v = (char*)&data[8];
对于delphi应用的逆向,假如我要写入一个新的key,应该早就有公开的方案了吧,搜了半天没啥相关的内容。
还有个200币的帖子没结,哪位老兄有思路的可以一起结给你。
有回帖奖励每个5币,勿灌水,集思广益。 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|