| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1492 人关注过本帖
标题:一段程序求姐
取消只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
你给的汇编很好,很感谢
我要回去睡觉了,忙了一晚上 就为了 怎么 变成一个汇编格式
我的vm 虚拟机的 客户端ubtun 还没下好,什么破网吧么

仁兄  我想醒了,就对这个问题明亮了,你要帮忙啊

我要成为嘿嘿的黑客,替天行道
2012-11-21 09:46
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
#include<stdio.h>
void focg(){
    int a[10];
    int *ret;
    ret=a+11;
    *ret+=8;
}

int main()
{    int b=10000;
     printf("i lov you %d \n",b);
    focg();
     printf("i lov you %d \n",b);
    b=1;
    b*=9;
    b+=b;
    printf("i lov you %d \n",b);
}

你运行下这个程序 是可以实现程序跳转的

我要成为嘿嘿的黑客,替天行道
2012-11-21 09:48
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
好的 我要把那个机器代码用汇编检测下到底是不是正确的
然后再跟你说声

我要成为嘿嘿的黑客,替天行道
2012-11-21 09:53
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
date segment
mm db 08Bh,0E5h,055h,08Bh,0ECh,083h,0ECh,0Ch,0B8h
   db 063h,06Fh,06Dh,06Dh,06Dh,06Dh,06Fh,063h,089h
   db 045h,0F4h,0B8h,061h,06Eh,064h,02Eh,089h,045h
   db 0F8h,0B8h,063h,06Fh,06Dh,022h,089h,045h,0FCh
   db 033h,0D2h,088h,055h,0FFh,08Dh,045h,0F4h
   db 050h,0B8h,024h,098h,01h,078h,0FFh,0D0h
xx dw 2 dup(?)
date ends
code segment
     assume cs:code,ds:date
start:  mov ax,date
       mov ds,ax
       mov cx,length mm
       mov si,offset mm
       mov ax,0000h
       mov es,ax
       mov di,0200h
       cld
       rep movsb
       mov bx,offset xx
       mov word ptr [bx],0200h
       mov word ptr [bx+2],0
       jmp dword ptr [bx]
      
       mov ah,4ch
       int 21h
code ends
   end start
这个汇编出来的程序报错  说什么无效指令  调试个汇编程序真要命,我范了两个错误,1.使用了汇编保留字做了段名  2 jmp指令格式 直接jmp 0000h:0200h了 搞了半天
我要抓狂了
32的汇编 懂是懂 可是书上是结合保护模式和实模式的方式写的
难道要我从实模式切换到保护模式运行 转移到内存中的机器码?
这个 32的汇编机器码  能不能在16位DOS程序里运行哟

[ 本帖最后由 zhu224039 于 2012-11-21 11:12 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-21 11:10
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
晚上再过来贴32位的汇编代码

我要成为嘿嘿的黑客,替天行道
2012-11-21 11:12
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
程序代码:
date segment
mm db 08Bh,0E5h,055h,08Bh,0ECh,083h,0ECh,0Ch,0B8h
   db 063h,06Fh,06Dh,06Dh,06Dh,06Dh,06Fh,063h,089h
   db 045h,0F4h,0B8h,061h,06Eh,064h,02Eh,089h,045h
   db 0F8h,0B8h,063h,06Fh,06Dh,022h,089h,045h,0FCh
   db 033h,0D2h,088h,055h,0FFh,08Dh,045h,0F4h
   db 050h,0B8h,024h,098h,01h,078h,0FFh,0D0h
xx dw 2 dup(?)
date ends
code segment
     assume cs:code,ds:date
start:  mov ax,date
       mov ds,ax
       mov cx,offset xx-offset mm     ;这个地方由length更改来的 这样才是对的
       mov si,offset mm
       mov ax,0000h
       mov es,ax
       mov di,0200h
       cld
       rep movsb
       mov bx,offset xx
       mov word ptr [bx],0200h
       mov word ptr [bx+2],0
       jmp dword ptr [bx]
     
       mov ah,4ch
       int 21h
code ends
   end start

  

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:08
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
debug 调试 确实是机器码出了问题 以下是debug的结果

08Bh,0E5h        mov sp,bp
055h             push bp
08Bh,0ECh        mov sp,bp
083h,0ECh,och    sub sp,0c
0B8h,063h,06Fh   mov ax,6f63
06Dh             db 6d          到这个地方CPU不认识这个db指令 后面连续的06dh,06dh 这个应该是 一个连续的动作 哎 看来我还是得自己汇编出自己的机器码

06Dh,06Dh,06Dh,06Fh,063h,089h
045h,0F4h,0B8h,061h,06Eh,064h,02Eh,089h,045h
0F8h,0B8h,063h,06Fh,06Dh,022h,089h,045h,0FCh
033h,0D2h,088h,055h,0FFh,08Dh,045h,0F4h
050h,0B8h,024h,098h,01h,078h,0FFh,0D0h

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:21
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
你的上面对机器码的汇编转换不晓得是怎么弄出来的

能教我下么

我要成为嘿嘿的黑客,替天行道
2012-11-21 20:22
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 41楼 lwb603569640
谢谢

我要成为嘿嘿的黑客,替天行道
2012-11-22 19:57
快速回复:一段程序求姐
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017835 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved