逆向工程--失业的娱乐

        前段时间在网上看了IAT Hook的文章,也正好期末提前放假,闲着想自己也想试一试,于是跟着网上的教程实现了汉化Windows系统自带的计算器。实现的话只应用到了dll注入和IAT Hook,实现起来也比较简单。

        大概实现思路是:写一个dll,dll中钩取显示数字的目标API(usr32.SetWindowTextW),在执行该函数前,将缓冲区内的阿拉伯数字0~9改为汉字的零~九,然后将dll注入到目标进程,即可实现该功能。不再赘述,直接写出我的具体实现步骤:

一、写一个dll文件,dll文件会注入到目标进程(calc.exe进程)

这个dll文件的实现为:

①搜索user32中原始SetWindowTextW函数地址

②编写Detour函数,实现将数字0~9改为汉字零~九

③遍历目标进程内存空间,定位到导入表。

通过OriginalFirstThunk遍历函数名称,找到目标函数,对应的FirstThunk的值为目标函数地址。

④注入dll时,将detour函数地址替换原函数地址,保存原函数地址,卸载时恢复

 

二、将上述dll文件注入到calc.exe进程中

①提升权限

②遍历进程,找到calc.exe

③将dll注入目标进程

 三、测试结果

①修改后函数被调用后的执行流程

②按照上述步骤写出后编译即可,测试结果如下图,系统计算器中的数字输入已经被修改位汉字输入

③测试系统版本为64位win7 7601。

 

        兜兜转转已经从一个小孩马上成长为一个工作的大人了,自学计算机这六年迷茫过,焦虑过,失眠过,自卑过,爱过恨过。从一个从来不喝酒的人,到现在能喝点酒了。从一个技术小白,到现在依然是小白。从前总是很害羞,到现在还是那么的害羞。从前总是急于求成,最后一事无成。学习过嵌入式开发,学习过Reverse,学习过Web,最后工作发现自己学的都还只是冰山一角。以前总想着自由生活,现在实习了,一个人反而感觉有些不适应了。学了这么久的逆向,最后工作上的内容和逆向也没什么关联,还是有些心酸,逆向的相关工作岗位还是很少,这么多年的学习也算是娱乐了吧。总的来说还是自己的自己的知识面不够宽,还是应该多读书,多背书,多向身边优秀的人取经。

学习过程中还有很多不足,还望朋友们指正!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值