学外挂编程是不是要有汇编基础吗?该怎么解决

学外挂编程是不是要有汇编基础吗?
我学VC的,学VC外挂编程是不是要有汇编基础吗?

------解决方案--------------------
外挂的门槛还是很高的,从个人经验来看需要以下知识:

1.熟练阅读汇编
2.会脱壳,有的游戏加了强壳,防止反汇编分析
3.熟悉驱动程序的编写,熟悉windows内核驱动。很多游戏都安装了驱动进行保护,防止你打开进程,防止读内存等等,需要写驱动程序去卸载掉游戏的一些保护
4.熟练使用OllyDbg和IDA,CE修改器等工具。
5.熟练使用Detours等挂钩库,或者能自己写inline hook,分析逻辑是基础,实现功能也同样重要。
6.熟悉PE文件结构,便于分析EXE或DLL,能够知道他们加载的内存区域,同时也是脱壳的基础。
7.熟悉进程的内存结构。比如全局区,常量区,代码区,堆,栈等等,知道他们的大概范围,有助于分析程序。比如用CE搜索到一个关键值内存地址为0x00128F0C,一看就知道这个绝大可能是栈地址,是局部变量。
8.如果写封包挂,还需要会分析网络协议,这些协议一般都进行了简单的加密,因此还需要了解加解密的常识。封包挂的实现,hook api也好,网络过滤驱动也好,也需要掌握。

总结起来其实是三点:
1.破解游戏保护
2.分析游戏逻辑
3.功能具体实现

总之,写外挂需要非常全面的技术知识,当然初学者可以循序渐进,从最简单的开始。比如有个程序点了一个按钮弹出一个MessageBox,显示Hello,如果你能够写个外挂,让它弹出的时候不是显示Hello,而是能够显示任何你要显示的文本,就是一个最简单的外挂了。这个最简单的外挂,不需要写驱动,不需要脱壳,不涉及网络。这个实现之后可以从扫雷这样的小游戏入手,逐渐深入,最后直至任何游戏。如果你想写大型网游的外挂,那么上面提到的知识几乎都必须掌握。因为这些年不同于2000年那个时期了,那时外挂泛滥,游戏公司很少考虑加密,加壳,驱动保护之类的。现在的网游,都充分考虑了反外挂功能,因此编写难度很大。