精华内容
下载资源
问答
  • 是这样的,想在运行的时候把arr数组中的数据插入到main()函数里面(arr数组里面为二进制代码),直接执行arr中的代码也可以,怎么弄?char arr[]={'\x55','\x8B','\xEC','\x83','\xEC','\x54','\x53','\x56','\x57',...
  • 今天要修改一段代码,可是找不到源代码了,怎么办呢?具体情况如下:某个.NET小网站,在做数据库的查询修改删除操作的时候,没有验证输入参数的合法性,没有做错误处理,导致页面异常. 代码如下: Private Sub Page_...

    今天要修改一段代码,可是找不到源代码了,怎么办呢?
    具体情况如下:

    某个.NET小网站,在做数据库的查询修改删除操作的时候,没有验证输入参数的合法性,没有做错误处理,导致页面异常.

    代码如下:

    Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
          iClass.Verify(Me)
          Me.DirId = Me.Request.QueryString.Item("DirId")
          Me.InfoId = Me.Request.QueryString.Item("InfoId")
          If Not IsNumber(Me.DirId) Then
                Me.DirId = ""
          End If
          Dim adapter1 As New OleDbDataAdapter(("Select * from Directory where Dirid = " & Me.DirId), Me.mCn)
          Dim table1 As New DataTable
          adapter1.Fill(table1)
          Me.DirPath = StringType.FromObject(table1.Rows.Item(0).Item("DirPath"))
          If (StringType.StrCmp(FileSystem.Dir(Me.Server.MapPath(Me.DirPath), FileAttribute.Directory), "", False) = 0) Then
                FileSystem.MkDir(Me.Server.MapPath(Me.DirPath))
          End If
          If Not Me.Page.IsPostBack Then
                Dim adapter2 As New OleDbDataAdapter(("Select * from info where InfoId=" & Me.InfoId & "and dirid=" & Me.DirId), Me.mCn)
                Dim table2 As New DataTable
                adapter2.Fill(table2)
                Me.txtTitle.Text = table2.Rows.Item(0).Item("Infotitle").ToString.Trim
                Me.txtMain.set_Text(table2.Rows.Item(0).Item("Infomain").ToString.Trim)
                Me.txtMain.set_Text(iClass.unchangestr(Me.txtMain.get_Text).ToString.Trim)
                Me.txtMaker.Text = table2.Rows.Item(0).Item("Infomaker").ToString.Trim
                Me.txtReship.Text = table2.Rows.Item(0).Item("Inforeship").ToString.Trim
          End If
    End Sub

    其中如果参数DirId和InfoId不为数字型的话,会造成
     "Select * from Directory where Dirid = " & Me.DirId
    以及
     "Select * from info where InfoId=" & Me.InfoId & "and dirid=" & Me.DirId
    的SQL语句查询出错

    解决方法:
    If Not IsNumber(Me.DirId) Then
        Me.DirId = ""
    End If
    改成
    If Not IsNumber(DirId) Or Not IsNumeric(InfoId) Then
       DirId = ""
       Return
    End If

    新建一WEB项目,在Page_Load事件中加入以下代码

    Verify(Me)
    DirId = Request.QueryString("DirId")
    InfoId = Request.QueryString("InfoId")
    If Not IsNumber(DirId) Or Not IsNumeric(InfoId) Then
       DirId = ""
       Return
    End If
    Dim objApt As New OleDbDataAdapter("Select * from Directory where Dirid = " & DirId, mCn)
    Dim objDt1 As New DataTable
    objApt.Fill(objDt1)
    DirPath = objDt1.Rows(0)("DirPath")
    If Dir(Me.Server.MapPath(DirPath), FileAttribute.Directory) = "" Then
        MkDir(Me.Server.MapPath(DirPath))
    End If
    If Not Page.IsPostBack Then
        Dim objApt1 As New OleDbDataAdapter("Select * from info where InfoId=" & InfoId & " and dirid=" & DirId, mCn)
        Dim objDt As New DataTable
        objApt1.Fill(objDt)
        txtTitle.Text = objDt.Rows(0)("Infotitle").ToString.Trim
        txtMain.Text = objDt.Rows(0)("Infomain").ToString.Trim
        txtMain.Text = unchangestr(txtMain.Text).ToString.Trim
        txtMaker.Text = objDt.Rows(0)("Infomaker").ToString.Trim
        txtReship.Text = objDt.Rows(0)("Inforeship").ToString.Trim
    End If

    (注意,控件中要用到的一些控件要手动添加,函数根据.NET Reflector反编译出源代码加入到项目中.)

    将新建项目编译成DLL

    接着,用VS自带的ILDASM将原始DLL反编译成IL,用文本编辑器打开IL文件,用查找功能定位到
     "Select * from info where InfoId="
    这一行
    往下走来到函数结尾
     } // end of method Admin_FileEdit::Page_Load
    往上走来到函数开头
     .method private instance void  Page_Load(object sender,
                                                 class [mscorlib]System.EventArgs e) cil managed
    中间部分就是要修改的代码了

    再接着,用VS自带的ILDASM打开刚才生成的项目的DLL,打开IL的树形结构,找到改正后的函数,双击,可以打开一个详细的代码文件
    将里面的所有代码复制到刚才打开的IL代码,替换IL文件中的原始函数
    即下面的部分
     .method private instance void  Page_Load(object sender,
                                                 class [mscorlib]System.EventArgs e) cil managed
      ...................................
      ...................................
      ...................................
     } // end of method Admin_FileEdit::Page_Load

    重新编译修改过的IL,"ilasm filename.il /dll"  (filename指你开始用ILDASM导出的IL文件名)


    将生成的DLL拷贝到BIN目录,覆盖旧的DLL

    至此,修改工作告一段落

    转载于:https://www.cnblogs.com/Aiasted/archive/2006/04/14/375032.html

    展开全文
  • 【背景】折腾:期间,调试代码期间,发现,对应的第三次的访问百度,访问:时之前的cookie,是这样的:[[version: 0][name: BAIDUID][value: 7164BE33080CE050940980ECBDFBCB9C:FG=1][domain: .baidu.com][path: /]...

    【背景】

    折腾:

    期间,调试代码期间,发现,对应的第三次的访问百度,访问:

    时之前的cookie,是这样的:[

    [version: 0][name: BAIDUID][value: 7164BE33080CE050940980ECBDFBCB9C:FG=1][domain: .baidu.com][path: /][expiry: Thu Sep 17 14:22:08 CST 2043],

    [version: 0][name: BDSVRTM][value: 1][domain: www.baidu.com][path: /][expiry: null],

    [version: 0][name: HOSUPPORT][value: 1][domain: passport.baidu.com][path: /][expiry: Sat Dec 04 14:22:31 CST 2021],

    [version: 0][name: H_PS_PSSID][value: 3359_3341_2776_1424_2981][domain: .baidu.com][path: /][expiry: null]

    ]

    想要将其中的

    H_PS_PSSID

    expiry

    的值,从null改为:

    Thu Sep 17 14:22:08 CST 2043

    保证其不过期。

    但是在Eclipse中,发现无法更改:

    8b35f4eafa74534f63c0f1ed0df820c8.png

    【解决过程】

    1.参考:

    好像比如把要修改值的变量,加到Watch列表里面去。

    2.所以去试试,

    67f802fa61e2986ecf722bda9a80b5cc.png

    然后去修改值:

    Change Value

    90424edacbd5b03d8535b25b3b1f8c41.png

    填入新的值:Thu Sep 17 14:22:08 CST 2043

    然后OK:

    4f29ac59b9668461cabb4f835f070b39.png

    结果无法修改,cookieExpiryDate还是之前的null。

    3.然后再去试试,找找另外别的cookie的expiry的值是什么,然后再参考去修改。

    d95916c6c995e93558c7cc2358c2c71f.png

    然后再去填入

    H_PS_PSSID

    的expiry的新值:

    45e4baf9aef874cb4abfd1bc1eb639ab.png

    结果却是超过int限制:

    5b6ec8575b8eac3f6ddbe41b68462449.png

    4.参考:

    提到的:

    去试试表达式:new Date("Thu Sep 17 14:22:08 CST 2043");

    即:

    718b97956b63f04bac0ae49c03394329.png

    看看是否有效。

    结果都是错误:

    42de12b36ab216b2cafaed4097162019.png

    5.然后想想,是不是少了return,所以去试试:

    待会再试。

    6.去把代码输入到Eclipse中:Date newExpiryDate = new Date("Thu Sep 17 14:22:08 CST 2043");

    结果显示:The constructor Date(String) is deprecated

    详见:

    7.搞定了如何用代码设置时间后,再去试试:new GregorianCalendar(2043, 9, 17, 14, 22, 8);

    即:

    b4ed48424ebce0105f2553e03aaf0dea.png

    结果是,还是不行。

    8.再去试试上面的,加上return看看:return new GregorianCalendar(2043, 9, 17, 14, 22, 8);

    即:

    0df0598ced947cf64c2116b1fde42181.png

    结果是,还是不行。

    【总结】

    至此,还是没搞定,在Eclipse调试期间,如何去更改一个CookieStore中的一个cookie的cookieExpiryDate的值。

    算了,还是另外,通过手动去写代码,去设置此Expiry值吧。

    最后是用如下代码://do some workaround to makesure here cookie H_PS_PSSID not expire

    //[version: 0][name: H_PS_PSSID][value: 3359_3341_2776_1424_2981][domain: .baidu.com][path: /][expiry: null]

    //Date newExpiryDate = new Date("Thu Sep 17 14:22:08 CST 2043");

    //Date newExpiryDate = new Date();

    Date newExpiryDate = new Date(2043, 9, 17);

    //Calendar newExpiryCalendar = new Calendar();

    //Calendar newExpiryCalendar = new GregorianCalendar();

    //Calendar newExpiryCalendar = new GregorianCalendar(2043, 9, 17);

    //Calendar newExpiryCalendar = new GregorianCalendar(2043, 9, 17, 14, 22, 8);

    BasicClientCookie hPsPssidCookie = null;

    int hPsPssidCookieIdx = 0;

    curCookieList = crl.getCurCookieList();

    for(Cookie ck : curCookieList)

    {

    if(ck.getName().equalsIgnoreCase("H_PS_PSSID"))

    {

    hPsPssidCookieIdx = curCookieList.indexOf(ck);

    hPsPssidCookie = (BasicClientCookie) ck;

    hPsPssidCookie.setExpiryDate(newExpiryDate);

    ck = hPsPssidCookie;

    break;

    }

    }

    crl.setCurCookieList(curCookieList);

    基本实现了,手动去修改那个特殊的cookie的expiry的值。

    展开全文
  • 后面会用到雷达图,如何下载了 echarts 组件后发现不会动态修改。。之前做小程序一直是写 page 里的内容,引入这个组件真的有点懵。。复制下 js 代码。。求大神指点下下面就是组件源码了,网上也有其他相关的,但是...

    后面会用到雷达图,如何下载了 echarts 组件后发现不会动态修改。。

    之前做小程序一直是写 page 里的内容,引入这个组件真的有点懵。。复制下 js 代码。。求大神指点下

    下面就是组件源码了,网上也有其他相关的,但是比较杂,代码格式也不太一样,echarts 这么写肯定有他道理。

    import * as echarts from '../../ec-canvas/echarts';

    const app = getApp();

    function initChart(canvas, width, height) {

    const chart = echarts.init(canvas, null, {

    width: width,

    height: height

    });

    canvas.setChart(chart);

    var option = {

    backgroundColor: "#ffffff",

    color: ["#37A2DA", "#FF9F7F"],

    tooltip: {},

    xAxis: {

    show: false

    },

    yAxis: {

    show: false

    },

    radar: {

    // shape: 'circle',

    indicator: [{

    name: '食品',

    max:500

    },

    {

    name: '玩具',

    max: 500

    },

    {

    name: '服饰',

    max: 500

    },

    {

    name: '绘本',

    max: 500

    },

    {

    name: '医疗',

    max: 500

    },

    {

    name: '门票',

    max: 500

    }

    ]

    },

    series: [{

    name: '预算 vs 开销',

    type: 'radar',

    data: [{

    value: [430, 340, 500, 300, 490, 400],

    name: '预算'

    },

    {

    value: [300, 430, 150, 300, 420, 250],

    name: '开销'

    }

    ]

    }]

    };

    chart.setOption(option);

    return chart;

    }

    Page({

    onShareAppMessage: function (res) {

    return {

    title: 'ECharts 可以在微信小程序中使用啦!',

    path: '/pages/index/index',

    success: function () { },

    fail: function () { }

    }

    },

    data: {

    ec: {

    onInit: initChart

    }

    },

    onReady() {

    }

    });

    展开全文
  • 一、单文档中修改程序标题的图标 1. 切换到ResourceView视图,右键点击Icon,选择“import” ,导入图标(.ico)文件 2. 在CMainFrame中的OnCreate()函数中添加如下代码: //设置标题栏的图标 HICON m_...

    一、单文档中修改程序标题的图标


    1. 切换到ResourceView视图,右键点击Icon,选择“import” ,导入图标(.ico)文件


    2. 在CMainFrame中的OnCreate()函数中添加如下代码:
    //设置标题栏的图标  
    HICON m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);  //IDI_ICON1是导入图标文件的ID。
    SetIcon(m_hIcon,TRUE);  
    SetIcon(m_hIcon,FALSE);

    二、对话框中修改程序标题的图标


    1、切换到ResourceView视图,右键点击Icon,选择“import” ,导入图标(.ico)文件


    2、找到Cex04Dlg类的构造函数

     

    将m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

    修改为:m_hIcon =AfxGetApp()->LoadIcon(IDI_ICON1);


    展开全文
  • /*5、编写C++程序,实现如下功能: a.定义一个类,Point, 具有x, y轴坐标两个私有数据成员(float类型); b.具有获取和设置x,y值的公有函数;写出两种构造函数;其原型为: Point();//此时初始化x,y为0 Point(float...
  • 项目中会包含很多个子VI程序,可能出于某些原因,对某些涉及关键算法等核心部分的子VI程序,可能不想让别人看到你的源程序框图,但又不影响在整个工程项目中,别人能够编辑修改其它的VI程序或者看到你的前面板外观,...
  • 这是个根据分数给出评价的程序代码如下: Private Sub Command1_Click() Dim a As Single a = Val(Text1.Text) If a > 100 Or a < 0 Then MsgBox ("invalid!") End If If a = 100...
  • printf("\t\t\t1.\t注册学生信息\n\n\t\t\t2.\t查询学生信息\n\n\t\t\t3.\t修改学生信息\n\n\t\t\t4.\t删除学生信息\n\n\t\t\t5.\t显示已存入学生信息\n\n\t\t\t6.\t退出系统\n\n"); do { printf("输入你的...
  • strcpy(s[h]->sex 问题补充中的代码 没有对结构赋值 而保存的数据是存在s[h]的结构中 telephone);|||急着要答案吗 晚了 我想睡了 要是不急 明天来给你我的看法 |||有点难 se); strcpy(s[h]->telephone telephone[11]...
  • 将重复的代码移到同个位置我们应该将重复的代码提取出来,合并放到同个位置,这样当有需要修改的,我们只需要改一个地方即可,同时也减少犯错率。假设我们有可能很写出下面的代码:const button = do...
  • 有时候往往是编程五分钟,找bug两小时,那么如果连怎样debug都不会就更头疼了,debug就是一个通过观察变量的变化,通过发生错误的点寻找代码中发生错误的地方,从而根据发生的错误寻找解决的方法修改自己的代码。...
  • 8.程序设计文档、程序使用说明书。 (三)代码要求 (1)代码风格良好,易维护:各个功能采用模块化设计(如使用函数等);代码结构清晰,有规范的空格、空行、缩进结构; 必要的地方有简洁合理的注释等; (2)系统...
  • 的时候,讲到收集代码覆盖率分别有修改最终程序(例如Emma是修改字节码),和修改源文件两种方式。而在iOS上,采用的就是后者,iOS原来用的是gcov收集代码覆盖率,后面苹果的LLVM项目,也实现了代码覆盖率收集功能,...
  • 可能你厌烦了C++代码的内存管理,想要换用一下更新的程序语言写UI。那这系列文章就是为这部分需求的技术选型打造的。目前阶段来看,opengl还是跨平台最好的3D API。opengl和各个语言都有绑定,也都会有一些跨平台的...
  • 方法名…………如果你只是修改了方法中的程序,那你在重新编译后发布同样不需要重启tomcat的。而jsp代码的编写也正是这个道理,JSP在编译的成servlet的时候,都是将代码编写在doService中,所以这并不影...
  • 什么是栈栈与普通数据结构所说的栈的概念是相似的,遵循后进先出原则。不同的是汇编中所说的栈是一个在内存中连续的保存数据的区域,也即是实际存在的内存区域,进栈和出栈遵循后进先出原则。...修改栈顶指针sub es...
  • 有时候,无论你怎样修改代码程序运行时就是不生效,即便是打开浏览器的调试模式查看源码,也会发现根本没有更改! 这时需要让CocosCreator重新编译一遍,一般方法是: 修改代码(即便是
  • 上面记录过怎样将MobileIMSDK的Java服务端代码运行起来,服务端代码中引用的lib中的核心源码位置如下 注: 博客:https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、...
  • 很多时候是由于对整个项目没有完整的构思,导致后面功能的扩展打乱现有的代码,后面阅读或修改看着好乱、不清晰。 ① 项目的操作流程 ② 理解项目的开发用意 ③ 开发的程序要符合人们的操作习惯 通过对项目的...
  • 代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, ...
  • 用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
  • 场景 使用若依的前后端分离版,,其默认的图标和标题等如下 如果想要修改为自己想要的标题和图标,实现类似下面的效果 ...修改其标题的logo的代码为 <script> import logoImg from '@..
  • 最近负责的Android APP项目,由于团队成员变动、界面改版导致代码大幅修改等原因,产品发布后屡屡出现BUG导致的程序崩溃。 经过对异常统计和代码走读,BUG主要集中在空指针引起的NullPointerException和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 715
精华内容 286
关键字:

怎样修改程序代码