-
-
[原创][小程序大名堂]--跨进程修改内存
-
发表于:
2015-12-15 13:01
7564
-
重要的事情说一遍:
●
[*]最近在15pb学习,感悟挺多,总结一下....(逃
-------------------
在时间充裕的情况下还是建议尽量用OD去分析 这能在很大程度上提升自己的逆向功力 我自己深有体会 实在是没办法再用IDA
比如说 “老板叫你在xxxx时间内搞定” 时间紧迫 你为了提升技术 就用OD去逆打死也不用ida 那这也没必要 饭碗要紧。。。
-------------------------------
此程序是要修更为自己的姓名和年龄。
准备工具:pidiy 、 OD 、 ida 、 vs2012
拖入PEID :
查看区段表 发现很乱 猜测是加壳 而且是自己写的
查看PE细节 发现tls函数 要警惕 先去复制回调表 :00416004!
查看输入表 找到了我们的老朋友“SetUnhandledExceptionFilter”异常函数 :
-------------------------------------------
拖入OD ctrl+g -ctrl+v粘贴回调表地址 回车 :
数据窗口 右键-整数-地址 查看TLS回调函数做了些什么(PS: 我分析了 什么也没做 就不进去看了):
我们来整整我们的老朋友的小伙伴“IsDebuggerPresent”(在这里就不做重点讲 已经讲过很多次了 而且有插件)
ctrl+g 查找函数“IsDebuggerPresent ” 通过栈回溯找到地址“004014AA” 修改并保存文件
我们知道这是一个控制台程序 那么它的输出方式肯定是printf相关!我们就
ctrl+g - printf - 回车 栈回溯来到地址“00401372”
我们分析得到:
从地址“0040c000”处开始拷贝1A(25)个字符[edi] edi来自edx edx又为[ebp-32]的地址 即最终通过修改[ebp-32]来加密 [代码红色高亮]
00401372 /$ 55 push ebp
00401373 |. 89E5 mov ebp,esp
00401375 |. 57 push edi
00401376 |. 56 push esi
00401377 |. 53 push ebx
00401378 |. 83EC 3C sub esp,0x3C
0040137B |. 8D55 CE lea edx,dword ptr ss:[ebp-0x32] ; 将[ebp-32]处地址给edx 即EDX=0029FED6
0040137E |. BB 00C04000 mov ebx,task.0040C000
[COLOR="DarkRed"][B]00401383 |. B8 1A000000 mov eax,0x1A
00401388 |. 89D7 mov edi,edx
0040138A |. 89DE mov esi,ebx
0040138C |. 89C1 mov ecx,eax[/B][/COLOR]
0040138E |. F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[esi] ; 拷贝字符 将[esi]的内容给[edi]
00401390 |. C74424 08 190>mov dword ptr ss:[esp+0x8],0x19 ; [ESP+0X8]=0X19
00401398 |. C74424 04 D9F>mov dword ptr ss:[esp+0x4],-0x27 ; [ESP+0X4]=0XFFFFFFD9
004013A0 |. 8D45 CE lea eax,dword ptr ss:[ebp-0x32] ; 把[esp-32]的地址给 eax EAX=0029FED6
004013A3 |. 890424 mov dword ptr ss:[esp],eax ; [ESP]=0029FED6
004013A6 |. E8 89FFFFFF call task.00401334 ; 进行加密
004013AB |. 8D45 CE lea eax,dword ptr ss:[ebp-0x32] ; |
004013AE |. 890424 mov dword ptr ss:[esp],eax ; |
004013B1 |. E8 FEA70000 call <jmp.&msvcrt.printf> ; \printf
004013B6 |. 83C4 3C add esp,0x3C
004013B9 |. 5B pop ebx
004013BA |. 5E pop esi
004013BB |. 5F pop edi
004013BC |. 5D pop ebp
004013BD \. C3 retn
00401334 /$ 55 push ebp
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课