- 博客(7)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 C#牛马特性,C字符串转C#字符串
在C#开发中,从内存读取字符串并保存到文件或显示到UI时,常遇到乱码或空白问题。这通常是由于C#的字符串转换机制导致的。C#中的字符串是一个对象,包含字符串地址、长度和数组。当从C语言传递数据到C#时,直接使用UnicodeEncoding.Unicode.GetString(byte[])转换可能会导致错误,因为该方法会将数组长度作为字符串长度进行转换,从而产生乱码。解决方案是重新计算字符串长度,查找数组中的0(C语言字符串以NULL结尾),并使用该索引作为字符串长度,重新创建数组并转换。
2025-05-17 21:39:00
154
原创 InlineHook和API HOOK从原理开始,一次性掌握劫持技术
在汇编中可以转移指令执行流程的指令是JMP和CALL,我们要干的就是在要将原来的执行流中插入JMP或CALL,在开始写代码之前,你需要想清楚使用JMP还是CALL,如何使用在于你的目的,使用JMP可以保证堆栈偏移不会发生变化,但需要计算两次JMP 的偏移量,而使用CALL则只需要计算一次,就是CALL的偏移量,而回跳地址直接使用ret,但缺点是CALL会更改堆栈的偏移,因为要压入回跳地址,我通常喜欢使用CALL来做劫持,因为堆栈的偏移相对于JMP那种繁琐的计算是不值一提(😄)的。
2023-09-22 14:06:17
852
原创 使用C++实现CE中的代码注入
1、关键函数VirtualAllocEx、WriteProcessMemory2、实现步骤:先使用CE将代码插入写好,拷贝其机器码。之后使用WriteProcessMemory写入这些机器码3、注意事项:对于拷贝过来的机器码,不能直接写入内存中,直接写的话需要将jmp的地址转换成机器码以后才能够写入:转换的公式可以参考如下连接:windows下的内联hook实现_其疾如风 其徐如林 侵略如火 不动如山-CSDN博客_内联hook代码如下:实现的功能主要是修改植物大战僵尸中增加的阳光数#
2022-02-24 17:12:05
3080
远程调用CALL-易语言源码
2022-09-28
C#文件读写问题,如何从内存获取文件路径并创建文件
2025-01-18
如何使用C书写Win10开始菜单的那种按钮
2022-04-08
在内联hook中l对于jmp 地址的类型|如何在内存中写入这个地址
2022-02-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人