|
关于OD方面的一个问题请教,请高手帮忙,谢谢!
不错,达文西同学说的是正确的,那个 ASCII数值 被我忽略了。 贴下完整的代码: 将004959B6 8B85 78FFFFFF mov eax, dword ptr [ebp-88] 改成jmp 00495D01(这个地方是空白) mov eax, dword ptr [ebp-88h] mov byte ptr [eax+3], 33h jmp 004959BC 感谢达文西同学和11楼,剽窃下你们的代码。这下不信还不正确。 |
|
关于OD方面的一个问题请教,请高手帮忙,谢谢!
楼主要这样改,明显是想保存后自运行,而不只是在OD里运行通过就行了. |
|
|
|
关于OD方面的一个问题请教,请高手帮忙,谢谢!
LZ,抱歉,我刚看错了.应该是 将004959B6 8B85 78FFFFFF mov eax, dword ptr [ebp-88] 改成jmp 00495D01(这个地方是空白) 然后在00495D01这个地方插入 mov eax,dword ptr [ebp-88h] ;注意88后面有16进制立即数标志h mov byte ptr [eax] ,30h ;这里你就改一个数值,注意该数值保存在地址00A17C3C上 jmp 004959BC 红色标记那个,如果你是想修改2个字节,你该写为word;类似,4个字节为dword. PS:以上全错,忽略了ASCII数值这几个字。 |
|
关于OD方面的一个问题请教,请高手帮忙,谢谢!
首先感谢大家的热心帮助,还想问一下是不是空白的地方就是为00000000的地方? 如果空白的地方是代码区块的地址范围,那么一个地址范围连续出现大段的000000,在正常情况下都是未使用的内存地址. |
|
如何跳过对函数的调用
1.可以这样 楼上几个人明显没实践过啊,这个中间肯定是3个NOP才是正好把空间填满呀. 怎么跳过或者删除对某个函数的调用。 如果你想知道为什么程序崩溃,你必须清楚 对某个函数的调用中函数里做了什么事,这个如同8楼所说要具体分析了.如果你确定函数里没有问题,那么 push eax覆盖了堆栈里的2个值,但是原来的那个函数调用也有很大可能修改掉这2个堆栈的值,所以这样改严格来说不正确. 我的看法就是:如果你不知道这个调用的函数做什么(特别是输出了什么结果),那么你只能撞运气改了,总崩溃的话还是看下函数调用吧 PS:楼上的几个办法都主要是针对自效验和出现一个广告窗口这种情况的函数调用的修改办法. 再PS: BS楼下的,比楼上的几个办法更容易出错. |
|
关于OD方面的一个问题请教,请高手帮忙,谢谢!
胡说八道,请看8楼. |
|
修改sys文件后加载发现修改的地址还是文件偏移
引用 其它地址都随基址改变了。 既然代码都贴的清楚了,这个 其他地址是哪几行代码中的哪个数,打几个字不行啊,非要笼统的说。明显是你哪地方理解错了,那说清楚你是怎么认为的,怎么理解的就OK了。 别人为啥不回贴,明显楼主不适应大家,而不是大家不适应楼主。 |
|
修改sys文件后加载发现修改的地址还是文件偏移
楼主太高看我等的文字理解能力了。 修改完计算效验和加载调试发现我修改的指定 MOV EAX,[121E4] 能经过语法分析得出下面这段话? 修改完文件,计算效验和,加载调试,发现修改的指令 MOV EAX,[121E4] 我刻薄点的说,楼主很冲,冲就算了,还死不承认错误。 希望你每天都遇到 你的所谓逗号漏写的错误 |
|
修改sys文件后加载发现修改的地址还是文件偏移
修改完计算效验和加载调试发现我修改的指定 MOV EAX,[121E4] 麻烦改掉错别字,这段话看了2分钟,结论是语句不通,逻辑不清。楼主语文高考没及格 另:楼主发完贴简单读遍自己的贴可以吗? |
|
win32汇编求解
小聪果然强大。输出表没仔细看过过,原来也有不少东西,明天好好看看书,学习了。 |
|
OD修改代码的一个问题,请教高手
晕了,终于发现楼主说的关键点了: OD直接加载dll时显示正常,但是用个EXE一加载这个dll,在OD里面看到这个地址就变了。所以想请教。 1000A205 |. 68 04010000 push 104 ; /BufSize = 104 (260.) 1000A20A |. 56 push esi ; |PathBuffer => 复件_Reg.10025D04 1000A20B |. 53 push ebx ; |hModule 1000A20C |. FF15 E4A10110 call dword ptr [<&KERNEL32.GetModuleF>; \GetModuleFileNameA 楼主你得把这三个参数如何获取的代码贴下。中间哪个参数push esi。ESI里你是通过直接赋值这样的硬编码方式? 如果是的话, 6楼早就说的非常清楚了。 还有,楼主你需要贴出你如何 将call 10019801变成了 jmp AAAA9801的代码。我们不看结果,看你怎么做的,如何用代码改写的。 |
|
win32汇编求解
代码没贴全吧。@B和@F的位置找不到。offset @B应该为6。你再发下代码。我夜晚回来,不能帮你看了。闪了。 |
|
OD修改代码的一个问题,请教高手
楼主,给你个建议: 1000A20C E8 F0F50000 call 10019801 ; mymodulename改为 1000A20C E8 F0F50000 nop 1000A211 90 call 10019801 ; mymodulename 有一次,我使用上面的通不过,使用下面的就没问题了,是偶然事件还是一般情况我也不知道,你先这样改试试。 还要提醒下楼主注意: 1000A20B . 53 push ebx PUSH的是DLL的句柄而不是EXE的句柄,所以是使用GetMoudleHandleEx函数取句柄。 |
|
有关 exe 文件的图标资源的获取
看资源区块,有个一级目录,里面有资源标号,32位EXE的图标好像是3号(记不清了)吧,然后会有该图标资源的信息RVA。然后就可以看了,这里面都是数据,请查看PE文件资源部分的具体资料,可以查看的。 PS:我知道日本一个破加壳软件居然对所有的资源信息都加密,这个也忒吃力不讨好了,哎,搞不懂为啥加密图标和版本信息等东西。 |
|
请教汇编基础问题
问题一:楼主,建议你查下汇编指令 OFFSET XX 和 LEA 寄存器,XX 语句有什么区别。 OFFSET XX 你必须在编译器确定当前段寄存器的的值才能正确识别到这个标记。而LEA 寄存器,XX 无此要求。32位,在反汇编语言里,一个段对应N个OFFSET XX 中的XX标记,XX标记必须在该段中定义(这个是我的体会,大家请多指教) 问题二:楼主,.code 前面是否有 MmGetSystemRoutineAddress XX XX 这样的定义。这个应该相当于程序的 IAT表(加载器负责填写API地址)。如果没有,那么你中间 ;--------------省略中间过程------------------------------------ 肯定有不能省略。 问题三:前2个问题没弄懂,那你很难看懂代码,就很难看出来这个是不是有意的。 |
|
[讨论]为什么软件修改了版本信息.运行就出错
看下楼主发布悬赏时的日期。 |
|
关于类似hook的一种方案实现 提问
最近配电脑,一直没上。 pushad是依次PUSH 8个常寄存器,就是分配8*4个堆栈空间(64位没有pushad) POPFD 你自己用OD看下吧。 如果 楼主自己的“吃血”函数 是通过CALLXXXXXXXX RET N方式的话就很容易看出堆栈平衡的问题。 举例: 00404010 call 408045 00404015 XXXXXXX (xxxxxxxx为任意指令) 那么执行地址00404010的代码,会将地址00404015入堆,这个值在堆栈里不应被覆盖,而且其值不变。这样楼主就获得了堆栈的定位标尺,好处是很明显的。 你这个双JMP方式对 新手 不推荐。易错还不易调试代码、更改代码,时间一长忘了的话自己再看一遍也更吃力些。 |
|
求助:8086简单汇编问题??
楼主,这个东西EXE文件本身决定不了CS和DS什么的值,这是LOAD加载器的事情(也可以说是操作系统中的文件系统的事情),所以你不必纠结具体值的。 这个问题,王爽的16位汇编书没说,那我想应该是没什么 研究或应用 的价值。 |
|
OD修改代码的一个问题,请教高手
楼主,你需要重定位。你这个就直接是写壳时用到的 简单级别CodeReplace 技术。方式有你这种和4楼所说的2种,不过本质一样的。另,如果你不想增加复杂度,推荐4楼这种方法,如果其他地方想换个方法,看下我以前回复的一个帖子就明白了。 http://bbs.pediy.com/showthread.php?t=101475 同6楼,LZ最后详细解释下,至少说下你想做什么啊。 引用“我将1000A20C处改为 call 10019801” 你这个是OD里直接改的吧。我想问下你 这个操作,你如何用代码实现的 。如果是代码实现出错,应该就是上面的问题吧。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值