首页
社区
课程
招聘
[讨论]java程序员和windows hook
发表于: 2019-2-19 15:29 3306

[讨论]java程序员和windows hook

2019-2-19 15:29
3306
网上看了很多视频和书,交了一些"学费",请问大佬们如何入门学习hook技术

----2019.2.20更新
     我是一个毕业后才接触计算机编程的码农,相对于很多人来说,起步很晚,但是还算努力,目前是一个java游戏服务端的开发人员。从学习程序开始一直对会逆向的人非常崇拜,这次终于有机会接触到一点点逆向相关的知识,一上来就吃了很多"药",买了很多教训,不过在这中间也学到了非常非常多的东西。写下这个帖子,希望可以给有和我面临一样问题的人留下一点点帮助
      我是某培训机构出来的,基础非常薄弱,学习了两个月就觉得培训机构水平实在不行,提出的问题那边的老师都没有办法给出满意的解答就自己出来了,也就进入游戏行业了,在我的概念中,最底层就是JDK和虚拟机了,java文件编译成class,然后class编译成机器码。对内存和汇编知之甚少,所以在刚开始想学习逆向的时候就想搞基本关于汇编和逆向的书来看,但是看的时候大多数都不懂在说什么,直到我看到了这样一个函数WriteProcessMemory ,这个函数经常出现在各种逆向的代码中,他是windows api,可以在windows平台下,写入进程的内存。我就在想,这是为啥,难道这个函数这么关键?
     于是我想到了我可能要去了解一下程序运行原理了(说来真的是汗颜,写代码写了快三年了,马马虎虎混了个title,居然程序运行原理都不知道),然后我在一个地方看到了下面关键的一句话
程序要执行,要先被加载到内存
    看到这句话我眼泪都要留下来了,原来od反汇编的是内存里面的机器码,我们操作的关键就在这里。cpu是执行内存中的指令,逆向和破解应该就是在这个上面下文章(这个只是我暂时的理解,各位大佬如果觉得不对轻喷),这个是我暂时觉得的一切的基础,改写内存中相应的指令,这样就可以改变软件执行的顺序和结构,达到某些目的。
     知道了这点之后,终于开始看得懂最基础的入门书籍在说什么了,学习也变得更加有方向了

----2019.2.25更新
    买了加密解密4终于到啦,会员转正拉,今晚看一会儿来更新

----2019.2.26更新
昨晚看腾讯课堂一个关于内存的讲解看睡着了,终于对计算机的内存和cpu有了一个粗浅的认识,也漫无目的的搜索了很多汇编相关的东西,能零零散散在od中找到一些东西,但是还是不太理解内存断点为什么能找到call,今天在腾讯课堂看到一个很不错的汇编课程,希望自己可以坚持看完。

兜兜转转之后,终于从一无所知的小白变成了一个可以写一些简单hook的菜鸡了,学习过程中除了给一些朋友的"细水长流",收集到了一些资料,希望可以对刚开始和我一样迷茫的程序员有一些帮助

《逆向工程核心原理》
《游戏外挂攻防的艺术》
王爽《汇编语言》
《加密解密4》
以上顺序是我看书的顺序,其实我一本都没有看完,我只挑了我认为有用的部分阅读了,并且在阅读的过程中,走马观花的看了以下的视频
https://bcdaren.com/中的逆向和汇编相关的部分,里面的老师说的真的很好,特别是关于堆栈图的绘制
还有就是看雪的课程里面的凌晨五点的汇编的视频
      其实前几天,借助微软的Detour框架,可以实现简单的对windows的API进行一些简单的hook,例如CreateMute创建互斥体这种,今晚在玩CE的教程的时候,突然发现,CE的插入代码其实就是一个hook,然后啪啦啪啦写了一段hook代码是真的挺有成就感的。从求助那天开始算,过去了五天,终于算是迈出了逆向的第一步,以上的书籍和视频日后会一步一步看完,不知道为什么,在进入逆向的第一个简单诉求达成之后,突然觉得摸到了入门的门槛,可以自己阅读一些相关书籍,不会像之前那样有畏难情绪了,也有可能是在走马观花的时候把一些之前一堆看不懂的专业名词做了相应的了解。我觉得算是一个小小的突破。
      这个帖子有一个回复贴,应该算是在看雪遇到的第一个有缘人。兄弟,不知道你能不能看到这个帖子的更新,其实作为一个程序员来说,除了日常白天的工作,当夜晚的时候打开计算机的时候,会有非常非常多的诱惑,有的可以让你捞很多银子,有的可以让你收获非常多的朋友,有的可以满足我们自己的虚荣心。但是在面对计算机的时候,其实面对的是自己,每一行代码都是自己的延伸,坚持下去,一定可以看到自己想看到的世界。或许在中途因为什么事情让一些事情看起来不那么顺利,一切都会好起来的,给你最美好的祝愿!
结帖


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-3-4 16:32 被kanxue编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1140
活跃值: (102)
能力值: ( LV4,RANK:48 )
在线值:
发帖
回帖
粉丝
2
能赚钱就行,啥技术不重要。管他懂不懂原理呢。你起码工作了,能赚钱,对吧,这点就比很多人强。起码比我强
最后于 2019-2-25 16:46 被大只狼编辑 ,原因:
2019-2-25 16:46
0
雪    币: 240
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
2019-3-1 00:36
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
我也准备入坑学习
2019-3-2 09:58
0
雪    币: 6124
活跃值: (4641)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
其实你的顺序不对,如果你是java转过来的,我建议你先去学C++ 2.0,而不是那些用C写C++的形式主义者,C++2.0的语法和特性和java有不少重合,你看到他们就像回家了一样。至于汇编 逆向这些东西,你得先会开发,不然进度缓慢无法理解,现代大型程序多C++新版本编写,你如果在学习C++的过程看过反汇编代码或者容器内存结构,对你的逆向技术将有很大的帮助,毕竟肉眼识别stl是一种本事。hook其实就是指令修改没什么神秘,不必纠结。等你学了3个月C++,自然而然就起飞了。代码写多了就成了别人口中的“大神”了。
你列出的那么多书我现在推荐你先看《逆向工程核心原理》这本书,是韩国人写的,非常细致,别的书,包括《加密解密4》其实都不适合你,因为《加密解密》知识点太分散,你很难看下去。王爽的汇编语言更是应该扫进故纸堆里的东西,无实践作用。真要看汇编语言建议你直接购买《win32下的汇编语言程序设计十周年纪念版》,《游戏外挂攻防的艺术》这本书其实讲了很多“大手子”到现在都不懂的技术,不适合初学者,看不懂的人会以为他在吹牛,实际上他讲的大部分都是干货,里面提到的分析思路至今还很有用。还要推荐你看的一本书是章立春的《软件保护及分析技术》,有兴趣的话还可以看他的新书,讲的是虚拟化保护分析的。别的没什么好说的,走进新时代,无论是开发还是逆向。
当然。学习C++的书,建议你直接看 C++入门经典和C++模板开发实战,还有兴趣的话就是boost库的书了,进一步放飞自我的话 C++模板template 第二版,学以致用 windows核心编程 找工作Qt5开发实战 掉头发 重构 改善既有代码的设计。准备进去包吃包住 rootkit 漏洞战争 线上犯罪调查取证 。
  当然,我这个人说话比较直。《windows黑客编程技术详解》这本书就是垃圾,代码都是抄的自己没跑过,满篇都是错还瞎吹牛逼。不服你先把pg那段的代码改了呀,白纸黑字的证据,楼主千万别给他送钱。
最后于 2019-3-2 11:17 被黑洛编辑 ,原因:
2019-3-2 11:09
1
雪    币: 1152
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
太感谢楼上黑洛兄弟的回帖了!!!
最后于 2019-3-2 15:33 被flameonyou编辑 ,原因:
2019-3-2 15:21
0
雪    币: 6124
活跃值: (4641)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
flameonyou 太感谢楼上黑洛兄弟的回帖了!!!
因为,我能看出你是真想要学的,市面上大部分逆向和C++的书籍我都读过,比如被吹成神的C++primer (plus)都是让人看了想睡觉的东西,像《完美C++》这种就属于难得的优秀教材。逆向其实我漏了一本,《win32反汇编揭秘》,这是本好书。像《逆向工程权威指南》这种书,太厚,也不深入不推荐你看的。《逆向工程核心原理》、《软件保护及分析技术》这两本看了你对逆向就有了认识,你想学的hook都在里面。走最少的弯路学最多的知识,希望能帮到你。
最后于 2019-3-2 20:54 被黑洛编辑 ,原因:
2019-3-2 20:54
1
游客
登录 | 注册 方可回帖
返回
//